{"push_id":1174245669,"size":10,"distinct_size":10,"ref":"refs/heads/cancellable","head":"1680cb32c353bf00773f469a4250c157acb8a830","before":"c1d52e0de323a7e2ce642e684dcf4070a306136c","commits":[{"sha":"79f1125003968dc5f36e974683a8fa32c520160a","author":{"name":"Lars-Peter Clausen","email":"7f698333860e9f21dcc513102ebee3bcaf8d683e@metafoo.de"},"message":"network: Add cancellation support\n\nSigned-off-by: Lars-Peter Clausen <lars@metafoo.de>","distinct":true,"url":"https://api.github.com/repos/analogdevicesinc/libiio/commits/79f1125003968dc5f36e974683a8fa32c520160a"},{"sha":"4570d0715fc4419f5ea07300dbb82256409ec4b7","author":{"name":"Lars-Peter Clausen","email":"7f698333860e9f21dcc513102ebee3bcaf8d683e@metafoo.de"},"message":"usb: Introduce IO context struct\n\nAdd a common IO context structure that is shared between the\niio_usb_io_endpoint struct and iio_device_pdata struct. This will allow to\npass additional state besides the endpoint number to IO operations.\n\nFor now the IO context only the EP number, but additional state will be\nadded in the following commits.\n\nSigned-off-by: Lars-Peter Clausen <lars@metafoo.de>","distinct":true,"url":"https://api.github.com/repos/analogdevicesinc/libiio/commits/4570d0715fc4419f5ea07300dbb82256409ec4b7"},{"sha":"f93519272a29767d05979d78506480d84037e190","author":{"name":"Lars-Peter Clausen","email":"7f698333860e9f21dcc513102ebee3bcaf8d683e@metafoo.de"},"message":"usb: Add custom sync transfers implementation\n\nReplace users of libusb_bulk_transfer() with a custom function that is\nequivalent in behavior. While this does not change the current behavior but\nallows us to extend and modify the behavior in the future, as it will be\nrequired for implementing buffer cancellation support.\n\nSigned-off-by: Lars-Peter Clausen <lars@metafoo.de>","distinct":true,"url":"https://api.github.com/repos/analogdevicesinc/libiio/commits/f93519272a29767d05979d78506480d84037e190"},{"sha":"707e8de7bc4d4ad03a05b9c992f17c02e045d535","author":{"name":"Lars-Peter Clausen","email":"7f698333860e9f21dcc513102ebee3bcaf8d683e@metafoo.de"},"message":"usb: Add cancellation support\n\nAdd buffer cancellation support to the USB backend. This uses\nlibusb_cancel_transfer() to cancel the currently active URB.\n\nSince iio_buffer_cancel() guarantees that any pending refill()/push()\noperations will abort and any future operations will return with an error\nwe need to protect against concurrent create of a new URB and the\ncancellation of the active URB to avoid race conditions.\n\nSigned-off-by: Lars-Peter Clausen <lars@metafoo.de>","distinct":true,"url":"https://api.github.com/repos/analogdevicesinc/libiio/commits/707e8de7bc4d4ad03a05b9c992f17c02e045d535"},{"sha":"66b0572592ea90cd3802128f9335d35529ec1adb","author":{"name":"Lars-Peter Clausen","email":"7f698333860e9f21dcc513102ebee3bcaf8d683e@metafoo.de"},"message":"iiod-client: Change userdata type to void *\n\nNow that all users pass a pointer (or const 0) as the userdata change the\ntype to void*. This allows to drop the uintptr_t casts.\n\nSigned-off-by: Lars-Peter Clausen <lars@metafoo.de>","distinct":true,"url":"https://api.github.com/repos/analogdevicesinc/libiio/commits/66b0572592ea90cd3802128f9335d35529ec1adb"},{"sha":"4366aa2fb1f715f6b31de4cd8aa8266fbfee4532","author":{"name":"Lars-Peter Clausen","email":"7f698333860e9f21dcc513102ebee3bcaf8d683e@metafoo.de"},"message":"iio_readdev: Add cancellation support\n\nAdd cancellation support to the iio_readdev tool. When user input is\nreceived that the application should terminate issue a iio_buffer_cancel(),\nthis will make sure that the applications terminates immediately. Otherwise\nit has to wait for the current iio_buffer_refill() operation to complete or\nfor a timeout to occur.\n\nSigned-off-by: Lars-Peter Clausen <lars@metafoo.de>","distinct":true,"url":"https://api.github.com/repos/analogdevicesinc/libiio/commits/4366aa2fb1f715f6b31de4cd8aa8266fbfee4532"},{"sha":"68f2a1b9a293bacbba9dd2a0204e3257b9d26905","author":{"name":"Lars-Peter Clausen","email":"7f698333860e9f21dcc513102ebee3bcaf8d683e@metafoo.de"},"message":"iiod: Use cancel API instead of non-blocking mode\n\nThe non-blocking mode has some serious issues. Among other things it will\ndeadlock when only a single buffer is used which means it breaks cyclic\nmode. Under certain conditions it can also result in undefined behavior.\n\nThus remove all users of non-blocking mode inside the IIOD. Instead use the\ncancel API to make sure that the rw thread is shutdown when the last client\ncloses the connection.\n\nSigned-off-by: Lars-Peter Clausen <lars@metafoo.de>","distinct":true,"url":"https://api.github.com/repos/analogdevicesinc/libiio/commits/68f2a1b9a293bacbba9dd2a0204e3257b9d26905"},{"sha":"7563b4ddcf82239410d1258d49f24f48e5e80c79","author":{"name":"Lars-Peter Clausen","email":"7f698333860e9f21dcc513102ebee3bcaf8d683e@metafoo.de"},"message":"iiod: Add helper function for non-interruptible poll\n\nThere are multiple places which have the same code that makes sure that\npoll() is re-entered in case an EINTR error is received. Factor this out\ninto a separate helper function.\n\nSigned-off-by: Lars-Peter Clausen <lars@metafoo.de>","distinct":true,"url":"https://api.github.com/repos/analogdevicesinc/libiio/commits/7563b4ddcf82239410d1258d49f24f48e5e80c79"},{"sha":"a5dab7a8ea4150e3293170e5fbeea2d634883ea4","author":{"name":"Lars-Peter Clausen","email":"7f698333860e9f21dcc513102ebee3bcaf8d683e@metafoo.de"},"message":"iiod: Replace condition variable with eventfd\n\nCurrently the rw thread signals the completion of a operation (either open\nbuffer or read/write buffer) to the client executing the operation using a\npthreads condition variable. The problem with condition variables is that\nit is only possible to wait for a single event. For proper robust operation\nof the IIOD we need to consider other events as well, e.g. we want to abort\nan operation if the client executing it has closed its communication\nchannel or if the while IIOD got signaled that it should shutdown.\n\nIn preparation for adding support for these additional events change the\ncondition variable to a eventfd which will allow us to use poll() to wait\nfor any of many wakeup events to arrive.\n\nSigned-off-by: Lars-Peter Clausen <lars@metafoo.de>","distinct":true,"url":"https://api.github.com/repos/analogdevicesinc/libiio/commits/a5dab7a8ea4150e3293170e5fbeea2d634883ea4"},{"sha":"1680cb32c353bf00773f469a4250c157acb8a830","author":{"name":"Lars-Peter Clausen","email":"7f698333860e9f21dcc513102ebee3bcaf8d683e@metafoo.de"},"message":"iiod: Add additional wakeup sources for read/write operations\n\nCurrently read/write operations only wake up when the operation has\ncompleted or if a timeout occured while completing it. In case none of\nthese events occur the read/write thread will get stuck.\n\nMake sure that the read/write thread is also woken up if the communication\nchannel is closed or if the application receives a termination request.\n\nSigned-off-by: Lars-Peter Clausen <lars@metafoo.de>","distinct":true,"url":"https://api.github.com/repos/analogdevicesinc/libiio/commits/1680cb32c353bf00773f469a4250c157acb8a830"}]}
{"actor":{"display_login":"lclausen-adi"}}