-
Notifications
You must be signed in to change notification settings - Fork 265
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add SelectableEvent class #8
Conversation
can you add a unit test for this, which will also serve as an example for how to use this class. Since it has a new api notify(), not sure how to use it. I assume we can no longer use Select::select() since it has the timeout hardcoded. |
I will add unittest for this in next cr, also select() is method of Select class not Selectable, notify function is only provided to trgger select that some message arrived. |
I do like to see an example how to use this selectableevent class, especially the notify api. Do you have an example? |
|
||
std::cout << "listening ... " << std::endl; | ||
|
||
int result = s.select(&sel, &fd, 2000); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
still have the timeout? I thought this selectevent can get rid of timeout which is the purpose?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes, i put timeout explicitly that if something goes wrong, it will not set value, and test will fails, since there is thread.join() and it will block unittest. Purpose of this test is to see if event notification is working correctly and it is.
ack |
* Add libzmq5 as dependency for ubuntu-20.04 build * Add libzmq3-dev dependency to build script Co-authored-by: Ubuntu <zain@zb-dev-vm.022x1jpnpm4u1iy2d325acts3c.yx.internal.cloudapp.net>
* first cut * first cut lib code with unit test * save it just in case, as VM under risk * partial update, as vm at risk * intermediate saving * First run code complete * self review update * partial compile * In middle of compilation * compiled OK * common ut passes * events_service unit tests complete * test code in progress * evens publish covere by unit test * events 75% covered by UT * subscribe UT done * Drop internal readme * Update upon self review - mostly on comments * More on comments update * minor fix of copy/paste error * Comments update * more comments * minor updates; merged with master via shared * Per review comments * minor updates * minor: name change for a typedef * Added EXIT code * Minor name change; Enabled py build for events * Minor signature update to adapt to SWIG generated python * Made zmq send & receive thread safe * temp commit to enable merge * removed hacks; Added set log level API * Minor signature change * Added unit test for C wrap * Corrected per review comments; Addede log message for published events * minor updates;no logical code changes * corrected per review comments; Added accidentally removed test * Added back accidentally removed test code file * retire runtime id on deinit * restore accidental removal * Switched to shared_ptr per review comments * minor non logical code changes * fix syntax * few follow up changes for bare ptr to shared ptr conversion * send event as JSON string * syntax * syntax * syntax * syntax * syntax * compile fix * compile fix * compile fix * compile fix * compile fix * compile fix * compile fix * compile fix * changing wrap signature to use struct instead of JSON string * compile fix * compile fix * compile fix * compile fix * compile fix * compile fix * compile fix * compile fix * compile fix * compile fix * compile fix * compile fix * compile fix * compile fix * compile fix * compile fix * compile fix * compile fix * compile fix * compile fix * compile fix * compile fix * compile fix * Add libzmq5 as dependency for ubuntu-20.04 build (#7) Co-authored-by: Ubuntu <zain@zb-dev-vm.022x1jpnpm4u1iy2d325acts3c.yx.internal.cloudapp.net> * Modify azp (#8) * Add libzmq5 as dependency for ubuntu-20.04 build * Add libzmq3-dev dependency to build script Co-authored-by: Ubuntu <zain@zb-dev-vm.022x1jpnpm4u1iy2d325acts3c.yx.internal.cloudapp.net> * Modify azp (#9) * Add libzmq5 as dependency for ubuntu-20.04 build * Add libzmq3-dev dependency to build script * Add uuid-dev and libboost-serialization-dev dependencies Co-authored-by: Ubuntu <zain@zb-dev-vm.022x1jpnpm4u1iy2d325acts3c.yx.internal.cloudapp.net> * Modify azp (#10) * Add libzmq5 as dependency for ubuntu-20.04 build * Add libzmq3-dev dependency to build script * Add uuid-dev and libboost-serialization-dev dependencies * Add dependencies for bazel build Co-authored-by: Ubuntu <zain@zb-dev-vm.022x1jpnpm4u1iy2d325acts3c.yx.internal.cloudapp.net> * compile errors * compile errors * Compile error from Ubuntu * drop unused macro * compile fix * compile fix * remove pedantic * restored ABORT_IF_NOT * revert flag add * comments correction * Log every published event * Install dependencies for vstest (#15) * Install deps vstest (#16) * Install dependencies for vstest * Add comments * Install deps vstest (#17) * Install dependencies for vstest * Add comments * Correct lib spelling * Added LINGER timeout to service sockets * Added heartbeat * compile fix * compile fix * compile fix * set LINGER_TIMEOUT before connect/bind * Add global options * Add global options * Add global options * Add global options * Add global options * Add global options * Add global options * Add global options * Add global options * added define * Moved C API to C header file * minor upates * minor upates * Updated comments * comments update * comments update * Fix build issue * Modify comment * Modify comment * Modify comment * Modify comment * Modify comment * Modify comment * Modify comment Co-authored-by: Renuka Manavalan <remanava@microsoft.com> Co-authored-by: Renuka Manavalan <47282725+renukamanavalan@users.noreply.github.com> Co-authored-by: Ubuntu <zain@zb-dev-vm.022x1jpnpm4u1iy2d325acts3c.yx.internal.cloudapp.net>
Purpose of this class is to allow threads waiting on selectable objects to be notified by user if for example user wants to finish thread, instead of periodic cause timeouts and check if thread needs to end