Skip to content

Instantly share code, notes, and snippets.

@wandernauta
Created July 15, 2010 10:38
Show Gist options
  • Save wandernauta/476791 to your computer and use it in GitHub Desktop.
Save wandernauta/476791 to your computer and use it in GitHub Desktop.
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb737db70 (LWP 3179)]
0x0805ee34 in GC_core_malloc ()
(gdb) where
#0 0x0805ee34 in GC_core_malloc ()
#1 0x08053e78 in zeromq__Message_new_withData (data=0x805fecd, size=7,
dealloc=0, hint=0x0) at /usr/lib/ooc/ooc-zeromq/zeromq.ooc:65
#2 0x0804a306 in messenger__client (args=0x80b3fc0, ctx=0x80d4890)
at ./messenger.ooc:56
#3 0x0804a342 in messenger____messenger_closure25 (args=0x80b3fc0,
ctx=0x80d4890) at ./messenger.ooc:10
#4 0x08113014 in ?? ()
#5 0xb7f3896e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#6 0xb7e86a4e in clone () from /lib/tls/i686/cmov/libc.so.6
use zeromq
import zeromq
import structs/ArrayList
import threading/Thread
import os/Time
main: func (args: ArrayList<String>) {
ctx := Context new(0)
Thread new(|| server(ctx)) start()
Time sleepSec(1)
Thread new(|| client(args, ctx)) start().wait()
}
server: func(ctx: Context) {
// Create an endpoint for client applications to connect to.
// We are using an XREP socket so that processing of one request
s := Socket new(ctx,SocketType sub)
// won't block other requests.
// "Made server socket" println()
s bind("inproc://pipe")
// "Bound server socket" println()
s setOption(SocketOption subscribe, "", 0)
// "Subscribe option set on server socket" println()
while (true) {
// "Receiving server" println()
// Get a request from the dispatcher.
request := s recv()
// "Received server" println()
" Got %s" printfln(request data())
}
}
client: func(args: ArrayList<String>, ctx: Context) {
// The only application thread is the main thread.
// One I/O thread in the thread pool will do.
// This client is a requester
// Connect to the server
addr := "inproc://pipe"
"Connecting to %s" printfln(addr)
s := Socket new(ctx, SocketType pub). connect(addr)
"Socket made (client)" println()
while (true) {
//scan the user's message
message := "Hello!"
// Send the request. No point in filling the content in as server
// is a dummy and won't use it anyway.
s send(Message new(message, message length() + 1, null, null))
// Get the reply
}
}
Connecting to inproc://pipe
Socket made (client)
Got
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Got Hello!
Segmentation fault
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment