Hi, If anyone is interested, the output of the working unit tests for libdispatch on Solaris 10 is attached below. This is done with libdispatch r188 + the patches posted to the list the last few days built together with libkqueue r271 together with a few patches posted on the libkqueue list. dispatch_priority seems to fail spuriously sometimes (even though it passed in the example below) and the starfish latency boundary test sometimes fails - this is on a Xeon 5500 box with 8 cores (of which 4 is HT). When running the test suite, a very large number of threads is created for some tests: 386 during dispatch_priority 35 during dispatch_priority2 257 during starfish It seems a bit excessive, what would be expected on such a configuration not having support for pthread_workqueue? I will try it using Mark Heily’s userspace pthread_workqueue implementation as well and see how that works. Joakim —— node5:~/gcd/trunk/testing> ./dispatch_api ================================================== [TEST] Dispatch (Public) API [PID] 16120 ================================================== Actual: 412850 Expected: 412850 [PASS] dispatch_get_main_queue node5:~/gcd/trunk/testing> ./dispatch_c99 ================================================== [TEST] Dispatch C99 [PID] 16135 ================================================== Actual: 412830 Expected: 412830 [PASS] dispatch_get_main_queue node5:~/gcd/trunk/testing> ./dispatch_cascade ================================================== [TEST] Dispatch Cascade [PID] 16150 ================================================== maxcount = 2464 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ** * * * * * * * * * ** * * * * * * * * * ** * * *** * * * * * node5:~/gcd/trunk/testing> ./dispatch_debug ================================================== [TEST] Dispatch Debug [PID] 16165 ================================================== node5:~/gcd/trunk/testing> ./dispatch_priority ================================================== [TEST] Dispatch Priority [PID] 16180 ================================================== LOW: 64 **************************************** DEFAULT: 60 ************************************** HIGH: 68 ******************************************* Actual: 192 Expected: 192 [PASS] blocks completed Actual: 64 Expected: <68 [PASS] high priority precedence node5:~/gcd/trunk/testing> ./dispatch_priority2 ================================================== [TEST] Dispatch Priority (Set Target Queue) [PID] 16195 ================================================== Actual: 413150 Expected: 413150 [PASS] q[i] Actual: 415a10 Expected: 415a10 [PASS] q[i] Actual: 415ac0 Expected: 415ac0 [PASS] q[i] LOW: 58 ************************************* DEFAULT: 67 ****************************************** HIGH: 67 ****************************************** Actual: 192 Expected: 192 [PASS] blocks completed Actual: 58 Expected: <67 [PASS] high priority precedence node5:~/gcd/trunk/testing> ./dispatch_starfish ================================================== [TEST] Dispatch Starfish [PID] 16210 ================================================== lap: 10 count: 1000 delta: 832448041 ns math: 415.808212 ns / lap Actual: 415 Expected: <1000 [PASS] Latency lap: 9 count: 1000 delta: 789866055 ns math: 394.538489 ns / lap Actual: 394 Expected: <1000 [PASS] Latency lap: 8 count: 1000 delta: 976664387 ns math: 487.844349 ns / lap Actual: 487 Expected: <1000 [PASS] Latency lap: 7 count: 1000 delta: 1625163520 ns math: 811.769990 ns / lap Actual: 811 Expected: <1000 [PASS] Latency lap: 6 count: 1000 delta: 1527922124 ns math: 763.197864 ns / lap Actual: 763 Expected: <1000 [PASS] Latency lap: 5 count: 1000 delta: 1293263436 ns math: 645.985732 ns / lap Actual: 645 Expected: <1000 [PASS] Latency lap: 4 count: 1000 delta: 1755776727 ns math: 877.011352 ns / lap Actual: 877 Expected: <1000 [PASS] Latency lap: 3 count: 1000 delta: 2045621497 ns math: 1021.788960 ns / lap Actual: 1021 Expected: <1000 [FAIL] Latency (dispatch_starfish.c:75) dispatch_starfish.c:75 lap: 2 count: 1000 delta: 997176198 ns math: 498.090009 ns / lap Actual: 498 Expected: <1000 [PASS] Latency lap: 1 count: 1000 delta: 1204968309 ns math: 601.882272 ns / lap Actual: 601 Expected: <1000 [PASS] Latency node5:~/gcd/trunk/testing> ./queue_finalizer ================================================== [TEST] Dispatch Queue Finalizer [PID] 16225 ================================================== Actual: 413390 Expected: 413390 [PASS] dispatch_queue_new Actual: 72f36169c7132463 Expected: 72f36169c7132463 [PASS] finalizer ran node5:~/gcd/trunk/testing>