{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":374436184,"defaultBranch":"main","name":"atomic_sync","ownerLogin":"dr-m","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2021-06-06T18:33:46.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/20552695?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1692003456.0","currentOid":""},"activityList":{"items":[{"before":"d280418ab4d4e96e4cec15e9c6aa6ef0492944f2","after":"55fc3a2941e16024774fce812ac15d73bf8f4cd4","ref":"refs/heads/main","pushedAt":"2024-06-07T10:40:31.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"dr-m","name":"Marko Mäkelä","path":"/dr-m","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20552695?s=80&v=4"},"commit":{"message":"Implement better spin loops","shortMessageHtmlLink":"Implement better spin loops"}},{"before":"025dd7e24a20c86a53e8abfc3eb99c3198f9d1a5","after":"d280418ab4d4e96e4cec15e9c6aa6ef0492944f2","ref":"refs/heads/main","pushedAt":"2023-10-02T13:07:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dr-m","name":"Marko Mäkelä","path":"/dr-m","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20552695?s=80&v=4"},"commit":{"message":"Fix typo: test/test_atomic_condition, not test/test/atomic_condition","shortMessageHtmlLink":"Fix typo: test/test_atomic_condition, not test/test/atomic_condition"}},{"before":"b087f92f949b47313dc9a2b3a7eee64012b32845","after":"3b9162131788b79c31eda21f8bb67f6fb01f13d8","ref":"refs/heads/futex2_numa","pushedAt":"2023-10-02T06:22:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dr-m","name":"Marko Mäkelä","path":"/dr-m","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20552695?s=80&v=4"},"commit":{"message":"Revert changes to atomic_shared_mutex\n\nLet us assume that the shared_mutex_storage::outer\n(which is covered by the FUTEX2_NUMA aware atomic_mutex)\nis a more likely bottleneck than the shared_mutex_storage::inner.\nThis reduces the over head for storage and user space CPU usage.","shortMessageHtmlLink":"Revert changes to atomic_shared_mutex"}},{"before":"22d4d8b2affb4e55c1045836b322e48c7e02aef4","after":"b087f92f949b47313dc9a2b3a7eee64012b32845","ref":"refs/heads/futex2_numa","pushedAt":"2023-10-01T17:07:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dr-m","name":"Marko Mäkelä","path":"/dr-m","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20552695?s=80&v=4"},"commit":{"message":"Reset the waiting NUMA node id to -1 when doable\n\nFIXME: this assumes little endian byte order and is not valid C++20!","shortMessageHtmlLink":"Reset the waiting NUMA node id to -1 when doable"}},{"before":null,"after":"22d4d8b2affb4e55c1045836b322e48c7e02aef4","ref":"refs/heads/futex2_numa","pushedAt":"2023-08-14T08:57:36.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dr-m","name":"Marko Mäkelä","path":"/dr-m","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20552695?s=80&v=4"},"commit":{"message":"Linux FUTEX2_NUMA prototype\n\nTODO: Could there be a futex_wake flag to reset the node identifier to -1\nwhen the wait queue became empty?","shortMessageHtmlLink":"Linux FUTEX2_NUMA prototype"}},{"before":"eb07e5165018b268246a6e042cd28eff7b42e2a1","after":"b7113396450e4707d36fb1c317b9f240126fb785","ref":"refs/heads/minimal","pushedAt":"2023-08-11T16:03:12.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"dr-m","name":"Marko Mäkelä","path":"/dr-m","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20552695?s=80&v=4"},"commit":{"message":"Merge branch 'main' into minimal","shortMessageHtmlLink":"Merge branch 'main' into minimal"}},{"before":"fe0ff6fb5214a2eff2038c2628bf224aec04ade2","after":"025dd7e24a20c86a53e8abfc3eb99c3198f9d1a5","ref":"refs/heads/main","pushedAt":"2023-08-06T13:20:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dr-m","name":"Marko Mäkelä","path":"/dr-m","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20552695?s=80&v=4"},"commit":{"message":"Make atomic_condition_variable more robust\n\nIf a condition variable shares multiple mutexes or conditions\n(such as \"the queue is full\" or \"the queue is empty\"), wait()\ncould hang indefinitely.\n\natomic_condition_variable::wait(): Count pending waits.\n\natomic_condition_variable::EVENT: The maximum number of concurrent wait().\nIn signal() and broadcast(), the atomic word will be incremented by this\namount (the event count).\n\ntest_atomic_condition: Cover scenarios where the condition variable will\nbe signalled multiple times.\n\nCloses #3","shortMessageHtmlLink":"Make atomic_condition_variable more robust"}},{"before":"d84781c4d10ffe2b1e7daec51e688d12fd1cf2f5","after":"eb07e5165018b268246a6e042cd28eff7b42e2a1","ref":"refs/heads/minimal","pushedAt":"2023-04-28T04:23:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dr-m","name":"Marko Mäkelä","path":"/dr-m","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20552695?s=80&v=4"},"commit":{"message":"Implement a minimal atomic_shared_mutex","shortMessageHtmlLink":"Implement a minimal atomic_shared_mutex"}},{"before":null,"after":"d84781c4d10ffe2b1e7daec51e688d12fd1cf2f5","ref":"refs/heads/minimal","pushedAt":"2023-04-27T18:52:54.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dr-m","name":"Marko Mäkelä","path":"/dr-m","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20552695?s=80&v=4"},"commit":{"message":"Implement a minimal atomic_mutex","shortMessageHtmlLink":"Implement a minimal atomic_mutex"}},{"before":"a63a408bef0a74861f9d35b7fa6fcb79a7f76ed1","after":"fe0ff6fb5214a2eff2038c2628bf224aec04ade2","ref":"refs/heads/main","pushedAt":"2023-04-10T17:41:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dr-m","name":"Marko Mäkelä","path":"/dr-m","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20552695?s=80&v=4"},"commit":{"message":"Encapsulate mutex_storage, do not derive from it","shortMessageHtmlLink":"Encapsulate mutex_storage, do not derive from it"}},{"before":"74ddd6ff978553220ae35dceed5b2a386da532c3","after":"a63a408bef0a74861f9d35b7fa6fcb79a7f76ed1","ref":"refs/heads/main","pushedAt":"2023-04-09T17:04:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dr-m","name":"Marko Mäkelä","path":"/dr-m","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20552695?s=80&v=4"},"commit":{"message":"Rename native_handle() to get_storage()","shortMessageHtmlLink":"Rename native_handle() to get_storage()"}},{"before":"85070469ff09647fb5b9f06d4daf987b5c939d95","after":"74ddd6ff978553220ae35dceed5b2a386da532c3","ref":"refs/heads/main","pushedAt":"2023-04-09T16:37:36.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"dr-m","name":"Marko Mäkelä","path":"/dr-m","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20552695?s=80&v=4"},"commit":{"message":"Declare default_spin_rounds()","shortMessageHtmlLink":"Declare default_spin_rounds()"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEXxwiRgA","startCursor":null,"endCursor":null}},"title":"Activity · dr-m/atomic_sync"}