diff options
author | Steve Huston <shuston@riverace.com> | 2010-03-26 14:13:07 +0000 |
---|---|---|
committer | Steve Huston <shuston@riverace.com> | 2010-03-26 14:13:07 +0000 |
commit | 22707b424b87b34892261f35f45b252a74c22ec1 (patch) | |
tree | c69c03d8e68f7e28f6ef5bcb6200999a0aec7b67 /ACE/ace/Dev_Poll_Reactor.inl | |
parent | 66841a9eb8be86c3e9ad69d77e1f9a583629c897 (diff) | |
download | ATCD-22707b424b87b34892261f35f45b252a74c22ec1.tar.gz |
ChangeLogTag:Fri Mar 26 14:07:55 UTC 2010 Steve Huston <shuston@riverace.com>
Diffstat (limited to 'ACE/ace/Dev_Poll_Reactor.inl')
-rw-r--r-- | ACE/ace/Dev_Poll_Reactor.inl | 38 |
1 files changed, 1 insertions, 37 deletions
diff --git a/ACE/ace/Dev_Poll_Reactor.inl b/ACE/ace/Dev_Poll_Reactor.inl index d031e06179f..b8392e7bb02 100644 --- a/ACE/ace/Dev_Poll_Reactor.inl +++ b/ACE/ace/Dev_Poll_Reactor.inl @@ -57,33 +57,6 @@ ACE_Dev_Poll_Handler_Guard::ACE_Dev_Poll_Handler_Guard if (do_incr && this->refcounted_) eh->add_reference (); - - /** - * The below comments were here when I replaced the old refcount - * scheme was replaced. They may still need addressing. -Steve Huston - */ - - /** - * @todo Suspend the handler so that other threads will not cause - * an event that is already in an upcall from being dispatched - * again. - * - * @note The naive approach would be to simply call - * suspend_handler_i() on the reactor. However, that would - * cause a system call (write()) to occur. Obviously this - * can potentially have an adverse affect on performance. - * Ideally, the handler would only be marked as "suspended" in - * the handler repository. If an event arrives for a - * suspended handler that event can be "queued" in a - * "handle readiness queue." "Queued" is quoted since a real - * queue need not be used since duplicate events can be - * coalesced, thus avoiding unbounded queue growth. Event - * coalescing is already done by Linux's event poll driver - * (/dev/epoll) so Solaris' poll driver (/dev/poll) is the - * main concern here. The largest the queue can be is the - * same size as the number of handlers stored in the handler - * repository. - */ } ACE_INLINE @@ -91,15 +64,6 @@ ACE_Dev_Poll_Handler_Guard::~ACE_Dev_Poll_Handler_Guard (void) { if (this->refcounted_ && this->eh_ != 0) this->eh_->remove_reference (); - - /** - * The below comments were here when I replaced the old refcount - * scheme was replaced. They may still need addressing. -Steve Huston - */ - /** - * @todo Resume the handler so that other threads will be allowed to - * dispatch the handler. - */ } ACE_INLINE void @@ -125,7 +89,7 @@ ACE_Dev_Poll_Reactor::upcall (ACE_Event_Handler *event_handler, { status = (event_handler->*callback) (handle); } - while (status > 0); + while (status > 0 && event_handler != this->notify_handler_); return status; } |