The IncrementalSweeper performs continous garbage collection as opposed to prompted or forced garbage collection. It relies on HeapTimer which has only been implemented for Mac and Blackberry. Once HeapTimer has been implemented which should also be able to implemented opportunistic garbage collection.
Created attachment 177477 [details] Patch
Note the thread-moving code has not been tested. I am unsure under which conditions it would happen.
Comment on attachment 177477 [details] Patch I found the first couple of multithreading issues. Not least of which that QBasicTimer depends on a QThread.
Created attachment 177495 [details] Patch Use postEvent instead of startTimer, and ensure we create the event-dispatcher on construction.
See also comments in bug #95923 - it sucks that there's so much #ifdeffery for a little bit of platform specific timer code ;( Is it perhaps time to have HeapTimerCF, HeapTimerQt and HeapTimerEFL.cpp?
Created attachment 181678 [details] Patch Split HeapTimer.cpp into platform specific source files. The Mac build is missing an update.
Comment on attachment 181678 [details] Patch Attachment 181678 [details] did not pass mac-ews (mac): Output: http://queues.webkit.org/results/15742915
Comment on attachment 181678 [details] Patch Attachment 181678 [details] did not pass win-ews (win): Output: http://queues.webkit.org/results/15756119
Created attachment 181683 [details] Patch Fix build for mac and win
Comment on attachment 181683 [details] Patch Attachment 181683 [details] did not pass win-ews (win): Output: http://queues.webkit.org/results/15756136
Created attachment 181685 [details] Patch Another attempt at building on win
Comment on attachment 181685 [details] Patch Splitting the file seems opposed at the moment.
Committed r141089: <http://trac.webkit.org/changeset/141089>