Commit c0ce13990ad2273e794bddda413360a9f11a9c9d

Authored by Georg Hopp
1 parent f71cac22

It seems that I have it right now

Showing 1 changed file with 4 additions and 1 deletions
... ... @@ -102,17 +102,18 @@ TR_commManagerSelect(void * _this, TR_Event event)
102 102 if (! this->io_triggered) {
103 103 printf("[DEBUG] [%s] io triggerd was empty\n", buffer);
104 104 fflush(stdout);
  105 +
105 106 pthread_mutex_lock(&this->io_triggered_lock);
106 107 this->io_triggered = TR_hashEach(this->write, this, commManagerIssueWriteEvents);
107 108 this->io_triggered += TR_hashEach(this->accept, this, commManagerIssueAcceptEvents);
108 109 this->io_triggered += TR_hashEach(this->read, this, commManagerIssueReadEvents);
109   - pthread_mutex_unlock(&this->io_triggered_lock);
110 110 }
111 111
112 112 printf("[DEBUG] [%s] io triggerd: %lu\n", buffer, this->io_triggered);
113 113 fflush(stdout);
114 114
115 115 if (! this->io_triggered) {
  116 + pthread_mutex_unlock(&this->io_triggered_lock);
116 117 if (NULL == timer) {
117 118 timeout = TR_eventDispatcherGetDataWaitTime(dispatcher);
118 119 } else {
... ... @@ -123,6 +124,8 @@ TR_commManagerSelect(void * _this, TR_Event event)
123 124 fflush(stdout);
124 125
125 126 TR_CALL(_this, TR_CommManager, select, event, timeout);
  127 + } else {
  128 + pthread_mutex_unlock(&this->io_triggered_lock);
126 129 }
127 130
128 131 return TR_EVENT_DONE;
... ...
Please register or login to post a comment