Changeset 26450 in vbox for trunk/src/VBox/Main
- Timestamp:
- Feb 11, 2010 6:19:11 PM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 57597
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/webservice/vboxweb.cpp
r26447 r26450 60 60 // include generated namespaces table 61 61 #include "vboxwebsrv.nsmap" 62 63 // If this is defined, then thread 1 ONLY performs COM event queue processing64 // (using RT_INDEFINITE_WAIT to wait for events), and the SOAP queue is processed65 // on a separate thread. This appears to be broken66 // as soon as more than one client fires SOAP events at the webservices.67 // If this is NOT defined, then COM events are only serviced after SOAP event68 // processing has completed, and both occur on thread 1.69 70 // #define TEMP_USE_BROKEN_XPCOM_EVENTQUEUE_PROCESSING71 62 72 63 /**************************************************************************** … … 429 420 430 421 WebLog("Processing connection from IP=%lu.%lu.%lu.%lu socket=%d (%d out of %d threads idle)\n", 431 m_u,432 422 (m_soap->ip >> 24) & 0xFF, 433 423 (m_soap->ip >> 16) & 0xFF, … … 551 541 size_t cItemsOnQ = g_pSoapQ->add(s); 552 542 WebLog("Request %llu on socket %d queued for processing (%d items on Q)\n", i, s, cItemsOnQ); 553 554 #ifndef TEMP_USE_BROKEN_XPCOM_EVENTQUEUE_PROCESSING555 // process the COM event Q556 int vrc = com::EventQueue::getMainEventQueue()->processEventQueue(0);557 #endif558 543 } 559 544 } … … 561 546 } 562 547 563 #ifdef TEMP_USE_BROKEN_XPCOM_EVENTQUEUE_PROCESSING564 548 /** 565 549 * Thread function for the "queue pumper" thread started from main(). This implements … … 576 560 return 0; 577 561 } 578 #endif579 562 580 563 /** … … 731 714 g_pSessionsLockHandle = new util::RWLockHandle(util::LOCKCLASS_OBJECTSTATE); 732 715 733 #ifdef TEMP_USE_BROKEN_XPCOM_EVENTQUEUE_PROCESSING734 716 // SOAP queue pumper thread 735 717 RTTHREAD tQPumper; … … 745 727 exit(1); 746 728 } 747 #endif748 729 749 730 // watchdog thread … … 765 746 } 766 747 767 #ifdef TEMP_USE_BROKEN_XPCOM_EVENTQUEUE_PROCESSING768 748 com::EventQueue *pQ = com::EventQueue::getMainEventQueue(); 769 749 while (1) 770 750 { 771 751 // we have to process main event queue 772 W ebLog("Pumping COM event queue\n");752 WEBDEBUG(("Pumping COM event queue\n")); 773 753 int vrc = pQ->processEventQueue(RT_INDEFINITE_WAIT); 774 754 if (FAILED(vrc)) 775 755 com::GluePrintRCMessage(vrc); 776 756 } 777 #else778 doQueuesLoop();779 #endif780 757 781 758 com::Shutdown();
Note:
See TracChangeset
for help on using the changeset viewer.