- When main thread is sleeping and receiving data by bearerbox,
we will be into an infinite loop.
This patch fix this by waking-up the main thread.
Vincent.
--
Telemaque - 06560 SOPHIA-ANTIPOLIS - (FR)
Service Technique/Reseau - NOC
Direction du Developpement xMS+
http://www.telemaque.fr/
[email protected]
Tel : +33 4 92 90 99 84 (fax 9142)
--- /gateway-cvs/utils/mtbatch.c 2009-04-16 12:30:23.000000000 +0200
+++ /gateway/utils/mtbatch.c 2009-04-16 12:32:24.000000000 +0200
@@ -147,6 +147,9 @@
start = t = time(NULL);
while (program_status != shutting_down) {
int ret;
+ /* make sure main thread is awaken */
+ gwthread_wakeup(MAIN_THREAD_ID);
+
/* block infinite for reading messages */
ret = read_from_bearerbox(&msg, INFINITE_TIME);
if (ret == -1)
@@ -425,7 +428,7 @@
/* avoid exiting before sending all msgs */
while(sended > counter_value(counter)) {
- gwthread_sleep(0.1);
+ gwthread_sleep(0.5);
}
program_status = shutting_down;