{"push_id":735535755,"size":15,"distinct_size":15,"ref":"refs/heads/local_nonblock","head":"49a12580ab5a5b170452251e8eefacf0790acfdf","before":"445c6514d07d052591712e5d32d62b4841c8f82f","commits":[{"sha":"d0214c652efe8da36a44abed5843bfe569359c8f","author":{"email":"90eebc3ed9e472707552aa1f0850807e64b4e5e4@gmail.com","name":"Jim Garlick"},"message":"modules/connector-local: rename from \"api\"","distinct":true,"url":"https://api.github.com/repos/garlick/flux-core/commits/d0214c652efe8da36a44abed5843bfe569359c8f"},{"sha":"ca7d1bd11399883a956424f6d73209fddf60ee57","author":{"email":"90eebc3ed9e472707552aa1f0850807e64b4e5e4@gmail.com","name":"Jim Garlick"},"message":"modules: make mod_main() RFC 5 compliant\n\nRFC 5 defines the mod_main() function prototype to be\n\n  int mod_main (void *context, int argc, char **argv);\n\nWe were still mod-transition from zhash_t arguments.\nComplete the transition by:\n\n- broker: call mod_main() with RFC 5 arguments\n- kvs module: parse key=val arguments\n- pymod module: convert internally to zhash_t\n- connector-local module: sockpath=path converted to fixed\n  argv[0] argument.  There are currently no users of this.\n- other in-tree modules: update mod_main() prototype,\n  but no arguments are handled","distinct":true,"url":"https://api.github.com/repos/garlick/flux-core/commits/ca7d1bd11399883a956424f6d73209fddf60ee57"},{"sha":"e139cf3a813d79cb13654e677563e8e8fc0152de","author":{"email":"90eebc3ed9e472707552aa1f0850807e64b4e5e4@gmail.com","name":"Jim Garlick"},"message":"modules/connector-local: modernize reactor usage","distinct":true,"url":"https://api.github.com/repos/garlick/flux-core/commits/e139cf3a813d79cb13654e677563e8e8fc0152de"},{"sha":"89b4e447525268b8cbd4e13515fca31fd7e71f98","author":{"email":"90eebc3ed9e472707552aa1f0850807e64b4e5e4@gmail.com","name":"Jim Garlick"},"message":"libflux: add flux_msg_encode/decode\n\nThese are simply flux_msg_t alternatives to zmsg_encode()\nand zmsg_decode().","distinct":true,"url":"https://api.github.com/repos/garlick/flux-core/commits/89b4e447525268b8cbd4e13515fca31fd7e71f98"},{"sha":"f1ccac81478159cb233349a00ffedd514ab4af48","author":{"email":"90eebc3ed9e472707552aa1f0850807e64b4e5e4@gmail.com","name":"Jim Garlick"},"message":"libflux: add flux_msg_sendfd/recvfd\n\nAdd replacements for zfd_send(), zfd_recv() that use flux_msg_t\nand handle non-blocking file descriptors properly:\n\n  int flux_msg_sendfd (int fd, const flux_msg_t *msg,\n                       struct flux_msg_iobuf *iobuf);\n  flux_msg_t *flux_msg_recvfd (int fd, struct flux_msg_iobuf *iobuf);\n\nOn EOF, recvfd returns NULL with errno set to EPROTO.\n\nIf iobuf is non-NULL, and EWOULDBLOCK/EAGAIN is returned, you may\ncall the function again with identical arguments to continue reading/writing.\nThe 'iobuf' may be NULL if the file descriptor is in blocking mode.\nIf iobuf is NULL and an EWOULDBLOCK/EAGAIN is encountered, this is\ninternally converted to an EPROTO error, after which the channel\nis in an undefined state.\n\niobuf should be initialized with flux_msg_iobuf_init() before use.\n\nWhile EWOULDBLOCK/EAGAIN handling is in progress, iobuf contains\ninternally allocated storage.  If you need to dispose of this,\ncall flux_msg_iobuf_clean(), which is a no-op if no internal storage\nis allocated.","distinct":true,"url":"https://api.github.com/repos/garlick/flux-core/commits/f1ccac81478159cb233349a00ffedd514ab4af48"},{"sha":"a2f09dfe02393b40d7f33c7b3efe3751c90581e7","author":{"email":"90eebc3ed9e472707552aa1f0850807e64b4e5e4@gmail.com","name":"Jim Garlick"},"message":"modules/connector-local: use flux_msg_sendfd/recvfd\n\nImplement non-blocking reactor handling for client send/recv\npath.  Add a message queue for each client, where messages for\nthe client can be stored while the client is not ready for writing.\n\nAlso: address possible starvation issue in the client read path by\nhandling at most one message before letting the reactor run.\n\nFixes #83","distinct":true,"url":"https://api.github.com/repos/garlick/flux-core/commits/a2f09dfe02393b40d7f33c7b3efe3751c90581e7"},{"sha":"73c2867f12883018a5dd0b4f60845b05289b150f","author":{"email":"90eebc3ed9e472707552aa1f0850807e64b4e5e4@gmail.com","name":"Jim Garlick"},"message":"connectors/local: use flux_msg_sendfd/recvfd\n\nNow flux_send() on this connector no longer ignores FLUX_O_NONBLOCK.","distinct":true,"url":"https://api.github.com/repos/garlick/flux-core/commits/73c2867f12883018a5dd0b4f60845b05289b150f"},{"sha":"50554a5dbb896d32fd76882291ec431191c9933c","author":{"email":"90eebc3ed9e472707552aa1f0850807e64b4e5e4@gmail.com","name":"Jim Garlick"},"message":"libutil: drop zfd class\n\nzfd_send() and zfd_recv() were never designed for nonblocking I/O.\n\nThey also lived in libutil and used zmsg_t, and since libutil doesn't\ndepend on anything in libflux, couldn't be converted to flux_msg_t.\n\nBetter functions are now provided in libflux, and users converted,\nso these are euthanized.","distinct":true,"url":"https://api.github.com/repos/garlick/flux-core/commits/50554a5dbb896d32fd76882291ec431191c9933c"},{"sha":"f378af423ec7e9cd41093cd85649a61a2724e798","author":{"email":"90eebc3ed9e472707552aa1f0850807e64b4e5e4@gmail.com","name":"Jim Garlick"},"message":"test: drop src/test/tenc.c\n\nThis test wasn't driven by anything in the check target, and it was\nusing the zfd class that was just removed.\n\nVanquished!","distinct":true,"url":"https://api.github.com/repos/garlick/flux-core/commits/f378af423ec7e9cd41093cd85649a61a2724e798"},{"sha":"ecd9dc87b66088cc0d5febfe40b11455fca29e69","author":{"email":"90eebc3ed9e472707552aa1f0850807e64b4e5e4@gmail.com","name":"Jim Garlick"},"message":"test/message: add tests for new functions\n\nAdd basic tests for encode/decode and sendfd/recvfd.\n\nUpdate message test to flux_msg_t (mostly).","distinct":true,"url":"https://api.github.com/repos/garlick/flux-core/commits/ecd9dc87b66088cc0d5febfe40b11455fca29e69"},{"sha":"9034d1ec2cff04da2d9fa10d28d4fbf8c100cdab","author":{"email":"90eebc3ed9e472707552aa1f0850807e64b4e5e4@gmail.com","name":"Jim Garlick"},"message":"doc: add flux_msg_encode(3), flux_msg_sendfd(3), etc\n\nAnd update the dictionary.","distinct":true,"url":"https://api.github.com/repos/garlick/flux-core/commits/9034d1ec2cff04da2d9fa10d28d4fbf8c100cdab"},{"sha":"90ab380bee19ed035ec102d9f80d517ddd1047de","author":{"email":"90eebc3ed9e472707552aa1f0850807e64b4e5e4@gmail.com","name":"Jim Garlick"},"message":"cmd/flux-ping: verify pad content\n\nIn preparation for a sharness test that pumps some large messages\nthrough the local connector using flux-ping, add a bit more\nverification that data has not been mangled.","distinct":true,"url":"https://api.github.com/repos/garlick/flux-core/commits/90ab380bee19ed035ec102d9f80d517ddd1047de"},{"sha":"57c9a1ab9b7df0dc6f2331a42f601840ce3b031d","author":{"email":"90eebc3ed9e472707552aa1f0850807e64b4e5e4@gmail.com","name":"Jim Garlick"},"message":"cmd/flux-ping: add --batch option\n\nWith --batch --count, responses are not processed until count requests\nhave been sent.  This may be useful for testing the non-blocking client\nwrite path in the local-connector module.","distinct":true,"url":"https://api.github.com/repos/garlick/flux-core/commits/57c9a1ab9b7df0dc6f2331a42f601840ce3b031d"},{"sha":"63800406b010abec426176d5777d857b5cc04952","author":{"email":"90eebc3ed9e472707552aa1f0850807e64b4e5e4@gmail.com","name":"Jim Garlick"},"message":"doc/man1: add flux-ping --batch description","distinct":true,"url":"https://api.github.com/repos/garlick/flux-core/commits/63800406b010abec426176d5777d857b5cc04952"},{"sha":"49a12580ab5a5b170452251e8eefacf0790acfdf","author":{"email":"90eebc3ed9e472707552aa1f0850807e64b4e5e4@gmail.com","name":"Jim Garlick"},"message":"test: exercise local connector with flood pings\n\nRun flood pings of various sizes and counts under timeout.\nIf any message is mangled or lost, the test should fail beacuse\nflux-ping will hang and the sharness timer will catch it.\n\nThis is a stress test of sorts on the local connector and the\ncorresponding 'local-connector' comms module.","distinct":true,"url":"https://api.github.com/repos/garlick/flux-core/commits/49a12580ab5a5b170452251e8eefacf0790acfdf"}]}