Commit Graph

78 Commits

Author SHA1 Message Date
Kristóf Tóth e92c0e7357 Fix diamond inheritance & missing __init__ parameters 2019-09-06 14:11:21 +02:00
Kristóf Tóth 8b6e82be38 Ensure Pipe*Server classes are ready for use after start() returns 2019-09-06 14:10:41 +02:00
Kristóf Tóth b98a1df962 Ensure test pipes are deleted after each test session 2019-09-05 14:15:51 +02:00
Kristóf Tóth 4aff5b1274 Bump version 2019-08-06 17:13:40 +02:00
Kristóf Tóth 1bd64c368c Fix bug where select() wouldn't block on linux (EOF) 2019-08-06 16:56:14 +02:00
Kristóf Tóth d4a6fe8f49 Fix bug where _unblock() would fail on a stopped thread 2019-08-06 16:18:56 +02:00
Kristóf Tóth 447b9ecbc3 Extend README and echo_server.py 2019-08-06 16:16:14 +02:00
Kristóf Tóth 439ea93f67 Remove ambiguous OS classifier 2019-08-05 17:44:14 +02:00
Kristóf Tóth 64be21cfa6 Add test case for stopping when pipes are deleted from the FS 2019-08-05 17:38:33 +02:00
Kristóf Tóth 7cb6af9c4e Reimplement IO loops to be more resilient against unintended client behaviour 2019-08-05 17:38:33 +02:00
Kristóf Tóth 4b3163179b Make tests run faster by removing an extreme case 2019-08-05 17:38:33 +02:00
Kristóf Tóth f31493e58e Remove unused variable 2019-08-05 17:38:33 +02:00
Kristóf Tóth 9557364219 Write more of those juice stop test cases 2019-08-05 17:38:33 +02:00
Kristóf Tóth c39527d99e Create a pip package for pipe_io_server 2019-08-05 17:38:29 +02:00
Kristóf Tóth 499ce8af76 Support connecting to existing pipes (and not touching them) 2019-07-30 14:44:05 +02:00
Kristóf Tóth acd8fde005 Refactor io thread registering 2019-07-30 13:04:08 +02:00
Kristóf Tóth 70ef9014ba Add accidentally deleted terminate_process_on_failure import 2019-07-29 18:29:21 +02:00
Kristóf Tóth 6de4ff527a Rework whole package to allow read-only/write-only servers 2019-07-29 18:15:19 +02:00
Kristóf Tóth ed951f7ce9 Fix test_stop (which was broken during a refactor) 2019-07-29 18:14:18 +02:00
Kristóf Tóth 846aec9fce Move unit tests to pipe_io_server package 2019-07-29 13:38:28 +02:00
Kristóf Tóth 48ffb7804a Fix positional arguments accidentally left optional after refactor 2019-06-23 20:53:24 +02:00
Kristóf Tóth ed62c1d01c Simplify on_stop 2019-06-23 18:44:34 +02:00
Kristóf Tóth 1155011b48 Make PipeIOServer a contextmanager 2019-06-23 18:40:06 +02:00
Kristóf Tóth a1e3fe9813 Allow reassigning handle_message() before start() 2019-06-23 18:22:04 +02:00
Kristóf Tóth 94b248fd89 Avoid randomly parametrized test cases to avoid confusing pytest 2019-05-26 15:24:28 +02:00
Kristóf Tóth 5b79dbff2b Fix bug where I'd accidentally override threading.Thread internals 2019-05-09 15:26:39 +02:00
Kristóf Tóth 38c81e0d29 Add support for an on_stop callback 2019-05-09 13:46:31 +02:00
Kristóf Tóth 8f80f49a86 Implement support for waiting for PipeIOServer to stop 2019-05-09 13:26:48 +02:00
Kristóf Tóth b1d23f9d95 Daemonize all threads to avoid breaking IOLoop exception handling (i.e tornado) 2019-05-07 17:16:43 +02:00
Kristóf Tóth 9f23ff1d6b Change default permission (execute bit has no meaning on pipes) 2019-05-04 22:50:08 +02:00
Kristóf Tóth d56efa9c4b Clarify why we use chmod instead of mkfifo's mode parameter 2019-05-04 22:49:45 +02:00
Kristóf Tóth 14ac1b82d1 Add strong close consistency guarantee to reader side 2019-05-04 22:34:28 +02:00
Kristóf Tóth 9ccb05a709 Add support for initializing pipes with specific permissions 2019-05-04 21:06:00 +02:00
Kristóf Tóth aa7eea6242 Really fix deadlock causing race condition 2019-05-03 22:00:23 +02:00
Kristóf Tóth 97de6a0175 Remove dropped use-cases from tests 2019-05-03 17:48:33 +02:00
Kristóf Tóth dbe5b10482 Fix unblock race condition randomly leading to deadlocks 2019-05-03 17:31:57 +02:00
Kristóf Tóth ca613644ac Implement thread-safe, blocking Deque class for reopen consistency 2019-05-02 23:14:08 +02:00
Kristóf Tóth daabc6dd8e Add support for reopening closed pipes with consistency guarantees 2019-05-02 23:07:32 +02:00
Kristóf Tóth 33d142ca08 Improve buffer management in pipeReader 2019-04-23 11:59:31 +02:00
Kristóf Tóth 7f08e01f39 Improve handling of buffer size in Go client 2019-04-17 17:07:42 +02:00
Kristóf Tóth 024204e439 Make PipeIOServer API more consistent with clients 2019-04-17 14:10:47 +02:00
Kristóf Tóth d12c9807f5 Implement Python bindings for pipe io client 2019-04-12 15:49:27 +02:00
Kristóf Tóth d28e90862d Refactor client codes to use similar, standardized API 2019-04-12 14:47:10 +02:00
Kristóf Tóth 74e08fd052 Implement C# bindings for pipe io client 2019-04-10 18:14:40 +02:00
Kristóf Tóth 5ff2f6c27d Make PipeIOServer non-blocking 2019-04-10 12:40:51 +02:00
Kristóf Tóth deafc516bd Implement Go bindings for pipe io client 2019-04-09 17:07:46 +02:00
Kristóf Tóth 61eb57c918 Implement Java bindings for pipe io client 2019-04-09 14:54:43 +02:00
Kristóf Tóth 586c8b8503 Implement C++ bindings for pipe io client 2019-04-08 15:48:13 +02:00
Kristóf Tóth 11813a9454 Rename stuff in C client API for clarity 2019-04-08 15:32:55 +02:00
Kristóf Tóth 05e397f142 Implement small C header only client library 2019-04-04 16:29:48 +02:00