summaryrefslogtreecommitdiff
path: root/build-test.sh
diff options
context:
space:
mode:
authorKoundinya Veluri <kouvel@users.noreply.github.com>2017-09-15 14:15:25 -0700
committerGitHub <noreply@github.com>2017-09-15 14:15:25 -0700
commitb8dda0cbf7eae770fc685378ad7c542e2468a209 (patch)
treee6a5ace0a08363f22021ed46246e9e8125310be3 /build-test.sh
parenta38aa2433942a2a200ca483c104fb0adf71db6e3 (diff)
downloadcoreclr-b8dda0cbf7eae770fc685378ad7c542e2468a209.tar.gz
coreclr-b8dda0cbf7eae770fc685378ad7c542e2468a209.tar.bz2
coreclr-b8dda0cbf7eae770fc685378ad7c542e2468a209.zip
Revert two changes to thread requests (#14015)
Reverting 99db31c41d5057e08cc4701c79f11246b9191a9b and fd91ee1fa23f35130f576c19dfaf35934dc2ce24 to unblock others while trying to figure out what the issues are and how to fix them. fd91ee1fa23f35130f576c19dfaf35934dc2ce24 is causing @benaadams thread pool perf test (https://github.com/benaadams/ThreadPoolTaskTesting) to hang due to a missed thread request. Somehow wsqActive is ending up at zero while there is a work item in the queue and with no pending thread requests. I don't understand how yet. 99db31c41d5057e08cc4701c79f11246b9191a9b appears to have a potential issue because the order of MarkThreadRequestSatisfied and Dequeue are reversed. For instance, assuming a proc count of 1: - Initial state: 1 work item enqueued, 1 thread request - T1 Dispatch: dequeues a work item and requests a thread (0 work items, 1 thread request) - T1 Dispatch: sees no more work items, returns - T1 calls Dispatch again due to its own thread request - T1 Dispatch: After Dequeue (which saw 0 work items) and before MarkThreadRequestSatisfied: - Current state: 0 work items, 1 thread request - T2 enqueues a work item, sees 1 thread request and does not request a thread (1 work item, 1 thread request) - T1 Dispatch: MarkThreadRequestSatisfied decrements thread requests (1 work item, 0 thread requests) - Now after T1 returns, it won't wake up again but there is still one work item in the queue
Diffstat (limited to 'build-test.sh')
0 files changed, 0 insertions, 0 deletions