Changeset 369
- Timestamp:
- May 24, 2012, 12:16:46 AM (13 years ago)
- Location:
- trunk/icedtea-web/plugin/icedteanp
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/icedtea-web/plugin/icedteanp/IcedTeaNPPlugin.cc
r368 r369 2341 2341 plugin_to_java_bus->subscribe(java_req_proc); 2342 2342 2343 #ifdef __OS2__ 2344 queue_processor_data1.processor = plugin_req_proc; 2345 queue_processor_data2.processor = plugin_req_proc; 2346 queue_processor_data3.processor = plugin_req_proc; 2347 pthread_create (&plugin_request_processor_thread1, NULL, &queue_processor, (void*) &queue_processor_data1); 2348 pthread_create (&plugin_request_processor_thread2, NULL, &queue_processor, (void*) &queue_processor_data2); 2349 pthread_create (&plugin_request_processor_thread3, NULL, &queue_processor, (void*) &queue_processor_data3); 2350 #else 2343 2351 pthread_create (&plugin_request_processor_thread1, NULL, &queue_processor, (void*) plugin_req_proc); 2344 2352 pthread_create (&plugin_request_processor_thread2, NULL, &queue_processor, (void*) plugin_req_proc); 2345 2353 pthread_create (&plugin_request_processor_thread3, NULL, &queue_processor, (void*) plugin_req_proc); 2354 #endif 2346 2355 2347 2356 itnp_plugin_thread_id = pthread_self(); … … 2531 2540 initialized = false; 2532 2541 2542 #ifdef __OS2__ 2543 // pthread_cancel() isn't implemented on OS?2, so use an old good flag 2544 queue_processor_data1.stopRequested = true; 2545 queue_processor_data2.stopRequested = true; 2546 queue_processor_data3.stopRequested = true; 2547 pthread_cond_broadcast(&cond_message_available); 2548 #else 2533 2549 pthread_cancel(plugin_request_processor_thread1); 2534 2550 pthread_cancel(plugin_request_processor_thread2); 2535 2551 pthread_cancel(plugin_request_processor_thread3); 2552 #endif 2536 2553 2537 2554 pthread_join(plugin_request_processor_thread1, NULL); -
trunk/icedtea-web/plugin/icedteanp/IcedTeaNPPlugin.h
r357 r369 94 94 static pthread_t plugin_request_processor_thread3; 95 95 96 #ifdef __OS2__ 97 struct QueueProcessorData 98 { 99 PluginRequestProcessor *processor; 100 bool stopRequested; 101 }; 102 103 static QueueProcessorData queue_processor_data1 = { NULL, false }; 104 static QueueProcessorData queue_processor_data2 = { NULL, false }; 105 static QueueProcessorData queue_processor_data3 = { NULL, false }; 106 #endif 107 96 108 // Condition on which the queue processor waits 97 109 extern pthread_cond_t cond_message_available; -
trunk/icedtea-web/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc
r348 r369 694 694 queue_processor(void* data) 695 695 { 696 696 #ifdef __OS2__ 697 QueueProcessorData *queue_processor_data = (QueueProcessorData *) data; 698 PluginRequestProcessor* processor = queue_processor_data->processor; 699 #else 697 700 PluginRequestProcessor* processor = (PluginRequestProcessor*) data; 701 #endif 698 702 std::vector<std::string*>* message_parts = NULL; 699 703 std::string command; … … 704 708 pthread_mutex_init(&wait_mutex, NULL); 705 709 710 #ifdef __OS2__ 711 queue_processor_data->stopRequested = false; 712 #else 706 713 pthread_cleanup_push(queue_cleanup, (void*) &wait_mutex); 714 #endif 707 715 708 716 while (true) … … 786 794 message_parts = NULL; 787 795 796 #ifdef __OS2__ 797 if (queue_processor_data->stopRequested) 798 break; 799 #else 788 800 pthread_testcancel(); 789 } 790 801 #endif 802 } 803 804 #ifdef __OS2__ 805 queue_cleanup((void*) &wait_mutex); 806 #else 791 807 pthread_cleanup_pop(1); 808 #endif 792 809 } 793 810
Note:
See TracChangeset
for help on using the changeset viewer.