Libraryless. Click here for Pure Java version (9670L/53K).
srecord noeq FastCollabWorker(FastCollab collab, int workerIndex) extends Thread { volatile gettable long errorCount; volatile gettable long spinWaits; volatile gettable long workCount; volatile gettable Throwable lastError; settable PingSource interruptor; int sleepTime; run { Runnable work; var interruptor = this.interruptor; sleepTime = collab.sleepTime; while ((work = collab.grabWork(workerIndex)) != collab.DONE) { interruptor?.ping(); try { if (work != null) { ++workCount; work.run(); } else waitSome(); } catch e { ++errorCount; lastError = e; } } } void waitSome ctex { if (sleepTime == 0) ++spinWaits; else sleep(sleepTime); } }
download show line numbers debug dex old transpilations
Travelled to 3 computer(s): elmgxqgtpvxh, mowyntqkapby, mqqgnosmbjvj
No comments. add comment
| Snippet ID: | #1035565 |
| Snippet name: | FastCollabWorker - uses spin-locking or ms sleep |
| Eternal ID of this version: | #1035565/8 |
| Text MD5: | c13704fa386012993e966d71f658f677 |
| Transpilation MD5: | 84c925100f53966a9c61c4947d414b08 |
| Author: | stefan |
| Category: | javax / parallelism |
| Type: | JavaX fragment (include) |
| Public (visible to everyone): | Yes |
| Archived (hidden from active list): | No |
| Created/modified: | 2022-11-03 19:53:17 |
| Source code size: | 832 bytes / 35 lines |
| Pitched / IR pitched: | No / No |
| Views / Downloads: | 616 / 757 |
| Version history: | 7 change(s) |
| Referenced in: | [show references] |