• source navigation  • diff markup  • identifier search  • freetext search  • 

Sources/ucode/tests/custom/06_lib_uloop/10_handle_priority

  1 A handle may watch for priority data alone. TCP urgent data invokes the
  2 callback with ULOOP_PRIORITY.
  3 
  4 -- Testcase --
  5 {%
  6         import * as uloop from 'uloop';
  7         import * as socket from 'socket';
  8 
  9         if (!uloop.ULOOP_PRIORITY)
 10                 exit(77);
 11 
 12         uloop.init();
 13 
 14         let hints = { family: socket.AF_INET, socktype: socket.SOCK_STREAM };
 15         let server = socket.listen('127.0.0.1', 0, hints);
 16         let client = socket.connect('127.0.0.1', server.sockname().port, hints);
 17         let peer = server.accept();
 18         let events = [];
 19 
 20         let handle = uloop.handle(peer, (flags) => {
 21                 push(events, [ flags, peer.recv(1, socket.MSG_OOB) ]);
 22         }, uloop.ULOOP_PRIORITY);
 23 
 24         printf("handle: %s\n", type(handle));
 25 
 26         client.send('!', socket.MSG_OOB);
 27 
 28         uloop.timer(100, () => uloop.end());
 29         uloop.run();
 30 
 31         printf("events: %J\n", events);
 32         printf("priority: %s\n", events[0]?.[0] == uloop.ULOOP_PRIORITY);
 33 
 34         handle.delete();
 35         peer.close();
 36         client.close();
 37         server.close();
 38         uloop.done();
 39 %}
 40 -- End --
 41 
 42 -- Expect stdout --
 43 handle: resource
 44 events: [ [ 128, "!" ] ]
 45 priority: true
 46 -- End --
 47 
 48 -- Platform --
 49 Linux
 50 -- End --

This page was automatically generated by LXR 0.3.1.  •  OpenWrt