Libraryless. Click here for Pure Java version (94L/1K).
// assumes that each set function is called exactly once // (but it doesn't matter which thread you call each of them from.) sclass LongPairCollector > AtomicCounter { volatile long valueOfA; volatile long valueOfB; final LongConsumer a = l1 setA; final LongConsumer b = l1 setB; void setA(long a) { valueOfA = a; itemReceived(); } void setB(long b) { valueOfB = b; itemReceived(); } LongConsumer setA aka setterForA() { ret a; } LongConsumer setB aka setterForB() { ret b; } void itemReceived { if (incCounter() == 2) complete(valueOfA, valueOfB); } // override me void complete(long a, long b) {} }
Began life as a copy of #1035562
download show line numbers debug dex old transpilations
Travelled to 3 computer(s): elmgxqgtpvxh, mowyntqkapby, mqqgnosmbjvj
No comments. add comment
Snippet ID: | #1035570 |
Snippet name: | LongPairCollector - concurrent collector for 2 longs with overridable complete() function |
Eternal ID of this version: | #1035570/12 |
Text MD5: | 062cdc18c08e3cf9746be281b5723891 |
Transpilation MD5: | 4a0107cfa16ac9f48077005870f06875 |
Author: | stefan |
Category: | javax / parallelism |
Type: | JavaX fragment (include) |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2022-06-19 06:16:53 |
Source code size: | 669 bytes / 23 lines |
Pitched / IR pitched: | No / No |
Views / Downloads: | 152 / 251 |
Version history: | 11 change(s) |
Referenced in: | [show references] |