diff options
author | Determinant <[email protected]> | 2019-06-07 16:00:27 -0400 |
---|---|---|
committer | Determinant <[email protected]> | 2019-06-07 16:00:27 -0400 |
commit | 316b61a15ff334a27462715ed4c99cf244a25701 (patch) | |
tree | d97616afca2171e335f99b8d222634f62eabfd64 /demo | |
parent | f32e3109526f2d4e980c03dd65f7c94edff4d2b2 (diff) |
use SigEvent callback in the example
Diffstat (limited to 'demo')
-rw-r--r-- | demo/main.go | 31 | ||||
-rw-r--r-- | demo/main_.go | 7 |
2 files changed, 33 insertions, 5 deletions
diff --git a/demo/main.go b/demo/main.go index e156f45..8dcbe98 100644 --- a/demo/main.go +++ b/demo/main.go @@ -1,10 +1,20 @@ package main +// void onTerm_cgo(int sig); +import "C" + import "salticidae-go" +import "unsafe" + +var ec salticidae.EventContext + +//export onTerm +func onTerm(_ int) { + ec.Stop() +} -func run(my_addr string, other_addr string) { +func run(ec salticidae.EventContext, my_addr string, other_addr string) salticidae.MsgNetwork { netconfig := salticidae.NewMsgNetworkConfig() - ec := salticidae.NewEventContext() net := salticidae.NewMsgNetwork(ec, netconfig) listen_addr := salticidae.NewAddrFromIPPortString(my_addr) connect_addr := salticidae.NewAddrFromIPPortString(other_addr) @@ -12,12 +22,23 @@ func run(my_addr string, other_addr string) { net.Start() net.Listen(listen_addr) net.Connect(connect_addr) - ec.Dispatch() + return net } func main() { + ec = salticidae.NewEventContext() + ev_int := salticidae.NewSigEvent(ec, salticidae.SigEventCallback(unsafe.Pointer(C.onTerm_cgo))) + ev_int.Add(salticidae.SIGINT) + ev_term := salticidae.NewSigEvent(ec, salticidae.SigEventCallback(unsafe.Pointer(C.onTerm_cgo))) + ev_term.Add(salticidae.SIGTERM) + alice := "127.0.0.1:10000" bob := "127.0.0.1:10001" - go run(alice, bob) - run(bob, alice) + alice_net := run(ec, alice, bob) + bob_net := run(ec, bob, alice) + ec.Dispatch() + ev_int.Free() + ev_term.Free() + alice_net.Free() + bob_net.Free() } diff --git a/demo/main_.go b/demo/main_.go new file mode 100644 index 0000000..2f53d93 --- /dev/null +++ b/demo/main_.go @@ -0,0 +1,7 @@ +package main + +// void onTerm_cgo(int sig) { +// void onTerm(int); +// onTerm(sig); +// } +import "C" |