{"push_id":734661459,"size":7,"distinct_size":7,"ref":"refs/heads/connector_fixup3","head":"ce8c9d8ecac0cb8f36083d1e0bc5cc76c287f362","before":"b91cc5275517797921f2f29e9f00e7f03fb99c13","commits":[{"sha":"38fbecb10d7044572f6f0c4c0ddb455293a83189","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/38fbecb10d7044572f6f0c4c0ddb455293a83189"},{"sha":"1542a3398d951aac98f8d4e68f39b29165e8809d","author":{"email":"90eebc3ed9e472707552aa1f0850807e64b4e5e4@gmail.com","name":"Jim Garlick"},"message":"modules/local-connector: use flux_msg_sendfd/recvfd\n\nClient socket fds are now set up in nonblocking mode.\n\nThe callback for the read path now handles at most one message\nbefore letting the reactor run, and also can handle a partial\nmessage, storing state in the client context between reactor\ncallbacks.\n\nThe write path is still blocking.  We switch the fd into blocking\nmode before each write, and back to non-blocking afterwards.\nThe path to fixing this is now clear, but for another commit.","distinct":true,"url":"https://api.github.com/repos/garlick/flux-core/commits/1542a3398d951aac98f8d4e68f39b29165e8809d"},{"sha":"eec56eb31bc71d3ba5a4ea8e90061ac326a8622d","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/eec56eb31bc71d3ba5a4ea8e90061ac326a8622d"},{"sha":"fa1e3127ad64a3c8441e16575931c199c1123153","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/fa1e3127ad64a3c8441e16575931c199c1123153"},{"sha":"66accee67116b44ab441eafce468e840a82d90c8","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/66accee67116b44ab441eafce468e840a82d90c8"},{"sha":"a21c2b9e52021a1430833e314b105ec896b22551","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/a21c2b9e52021a1430833e314b105ec896b22551"},{"sha":"ce8c9d8ecac0cb8f36083d1e0bc5cc76c287f362","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/ce8c9d8ecac0cb8f36083d1e0bc5cc76c287f362"}]}