{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":167156989,"defaultBranch":"master","name":"sync","ownerLogin":"moonlibs","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2019-01-23T09:37:20.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/28959099?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1709505718.0","currentOid":""},"activityList":{"items":[{"before":"4daa70190c6c41386245d3404b28944bdae8c09d","after":null,"ref":"refs/heads/fix-timeout-0","pushedAt":"2024-03-03T22:41:58.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"ochaton","name":"Vladislav Grubov","path":"/ochaton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11244356?s=80&v=4"}},{"before":"00722df4545c1ce56cac97dbe6290942799268cf","after":"eb439bde8360e2d68a91700330b5c62388ac84a8","ref":"refs/heads/master","pushedAt":"2024-03-03T22:32:10.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"ochaton","name":"Vladislav Grubov","path":"/ochaton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11244356?s=80&v=4"},"commit":{"message":"Merge pull request #9 from moonlibs/fix-timeout-0\n\nfix: sync/cond and sync/pool do not yield with timeout=0","shortMessageHtmlLink":"Merge pull request #9 from moonlibs/fix-timeout-0"}},{"before":"5eaa3f85ec6b80b94d91047391eb633895569728","after":"4daa70190c6c41386245d3404b28944bdae8c09d","ref":"refs/heads/fix-timeout-0","pushedAt":"2024-03-03T22:30:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"ochaton","name":"Vladislav Grubov","path":"/ochaton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11244356?s=80&v=4"},"commit":{"message":"Release 0.12.0","shortMessageHtmlLink":"Release 0.12.0"}},{"before":"8c67bb31d1de236da04c42c80b57595613279e8b","after":"5eaa3f85ec6b80b94d91047391eb633895569728","ref":"refs/heads/fix-timeout-0","pushedAt":"2024-03-03T22:27:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"ochaton","name":"Vladislav Grubov","path":"/ochaton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11244356?s=80&v=4"},"commit":{"message":"fix: fixes yield test for sync/pool","shortMessageHtmlLink":"fix: fixes yield test for sync/pool"}},{"before":null,"after":"8c67bb31d1de236da04c42c80b57595613279e8b","ref":"refs/heads/fix-timeout-0","pushedAt":"2024-03-03T22:17:55.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ochaton","name":"Vladislav Grubov","path":"/ochaton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11244356?s=80&v=4"},"commit":{"message":"fix: sync/cond and sync/pool noyields with timeout=0\n\n\t* sync/cond: caller now can \"check\" whether value is present in\n\t condvar with cond:recv(0) and it is guarantied that this call\n\t never yields\n\t* sync/pool: caller now can send task with {wait_timeout=0} and\n\t be sure, that execution will not yield and will return proper\n\t message TASK_WAS_NOT_SCHEDULED if no free workers are\n\t available in the pool right now","shortMessageHtmlLink":"fix: sync/cond and sync/pool noyields with timeout=0"}},{"before":"05a4778e25b649690ba854e8a9eeb23bdb78a2bd","after":"00722df4545c1ce56cac97dbe6290942799268cf","ref":"refs/heads/master","pushedAt":"2023-09-05T18:04:30.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"ochaton","name":"Vladislav Grubov","path":"/ochaton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11244356?s=80&v=4"},"commit":{"message":"Merge pull request #8 from moonlibs/fix-infinite-rate\n\nfix: sync/rate fixes rate:wait() on infinite rps","shortMessageHtmlLink":"Merge pull request #8 from moonlibs/fix-infinite-rate"}},{"before":"5ab8ffc0f884d660cc3adb090b4940d009248292","after":"2b284e5c7082a52254505e573c0dae41a8116e8b","ref":"refs/heads/fix-infinite-rate","pushedAt":"2023-09-05T18:03:00.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ochaton","name":"Vladislav Grubov","path":"/ochaton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11244356?s=80&v=4"},"commit":{"message":"fix: sync/rate fixes rate:wait() on infinite rps\n\n\t* rate:wait() crashed for rates with infinite rps _reserve\n\tmust return numeric `timeToAct` if reservation is allowed","shortMessageHtmlLink":"fix: sync/rate fixes rate:wait() on infinite rps"}},{"before":null,"after":"5ab8ffc0f884d660cc3adb090b4940d009248292","ref":"refs/heads/fix-infinite-rate","pushedAt":"2023-09-05T17:55:07.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ochaton","name":"Vladislav Grubov","path":"/ochaton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11244356?s=80&v=4"},"commit":{"message":"fix: sync/rate fixes rate:wait() on infinite rps\n\n\t* rate:wait() crashed for rates with infinite rps _reserve\n\tmust return numeric `timeToAct` if reservation is allowed","shortMessageHtmlLink":"fix: sync/rate fixes rate:wait() on infinite rps"}},{"before":"f036ab31b7058af05496938b7a8e6bc02272b52b","after":"05a4778e25b649690ba854e8a9eeb23bdb78a2bd","ref":"refs/heads/master","pushedAt":"2023-06-08T09:07:05.470Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Mons","name":null,"path":"/Mons","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26923?s=80&v=4"},"commit":{"message":"sync/rate: implements golang-like rate limiter (#7)\n\n* sync/rate: implements golang-like rate limiter\r\n\r\n\t* sync/rate implements classic TokenBucket ratelimiter\r\n\t* client may create ratelimiter with passing limit and burst\r\n\t* rate limiter can have at most burst bucket\r\n\t* rate limiter is refilled with token at rate `limit` tokens per\r\n\t second (can be fractional)\r\n\t* ratelimit exposes 3 public methods:\r\n\t\t- rate:wait([timeout=now, [n=1]]) awaits for n tokens\r\n\t\t within timeout seconds (can be fractional)\r\n\t\t- rate:reserve([timestamp=now(), [n=1]]) creates\r\n\t\t reservation for n tokens which will be consumed at\r\n\t\t timestamp (non expired reservations can be cancelled)\r\n\t\t- rate:allow([timestamp=now(), [n=1]]) autoreserves n\r\n\t\t token to be consumed at time `timestamp` (don't think\r\n\t\t someone need this method at all)\r\n\r\n* rate: adds README and tests\r\n\r\n* rate: fixes namings and error format\r\n\r\n---------\r\n\r\nCo-authored-by: Vladislav Grubov ","shortMessageHtmlLink":"sync/rate: implements golang-like rate limiter (#7)"}},{"before":"2113f3593946bc2cd1287a4d673abf117b77ea9e","after":"037992001db1afcf86d5ecb77a4fee7611e0414a","ref":"refs/heads/feat/ratelimit","pushedAt":"2023-06-08T08:44:50.210Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ochaton","name":"Vladislav Grubov","path":"/ochaton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11244356?s=80&v=4"},"commit":{"message":"rate: fixes namings and error format","shortMessageHtmlLink":"rate: fixes namings and error format"}},{"before":"7a8caf6454e176eaf689e9b1e78ff5b4bd624442","after":"2113f3593946bc2cd1287a4d673abf117b77ea9e","ref":"refs/heads/feat/ratelimit","pushedAt":"2023-06-06T07:37:09.668Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ochaton","name":"Vladislav Grubov","path":"/ochaton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11244356?s=80&v=4"},"commit":{"message":"rate: fixes namings and error format","shortMessageHtmlLink":"rate: fixes namings and error format"}},{"before":"058a3c1a47ba3b2c5be65d004a33acf12fa12cf7","after":"7a8caf6454e176eaf689e9b1e78ff5b4bd624442","ref":"refs/heads/feat/ratelimit","pushedAt":"2023-06-05T14:55:37.653Z","pushType":"push","commitsCount":1,"pusher":{"login":"ochaton","name":"Vladislav Grubov","path":"/ochaton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11244356?s=80&v=4"},"commit":{"message":"rate: fixes namings and error format","shortMessageHtmlLink":"rate: fixes namings and error format"}},{"before":"4ce0b766ed8412f21aa6a33c653e508f3494c4ff","after":"058a3c1a47ba3b2c5be65d004a33acf12fa12cf7","ref":"refs/heads/feat/ratelimit","pushedAt":"2023-05-16T13:56:55.660Z","pushType":"push","commitsCount":1,"pusher":{"login":"ochaton","name":"Vladislav Grubov","path":"/ochaton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11244356?s=80&v=4"},"commit":{"message":"rate: adds README and tests","shortMessageHtmlLink":"rate: adds README and tests"}},{"before":null,"after":"4ce0b766ed8412f21aa6a33c653e508f3494c4ff","ref":"refs/heads/feat/ratelimit","pushedAt":"2023-05-15T22:07:42.903Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ochaton","name":"Vladislav Grubov","path":"/ochaton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11244356?s=80&v=4"},"commit":{"message":"sync/rate: implements golang-like rate limiter\n\n\t* sync/rate implements classic TokenBucket ratelimiter\n\t* client may create ratelimiter with passing limit and burst\n\t* rate limiter can have at most burst bucket\n\t* rate limiter is refilled with token at rate `limit` tokens per\n\t second (can be fractional)\n\t* ratelimit exposes 3 public methods:\n\t\t- rate:wait([timeout=now, [n=1]]) awaits for n tokens\n\t\t within timeout seconds (can be fractional)\n\t\t- rate:reserve([timestamp=now(), [n=1]]) creates\n\t\t reservation for n tokens which will be consumed at\n\t\t timestamp (non expired reservations can be cancelled)\n\t\t- rate:allow([timestamp=now(), [n=1]]) autoreserves n\n\t\t token to be consumed at time `timestamp` (don't think\n\t\t someone need this method at all)","shortMessageHtmlLink":"sync/rate: implements golang-like rate limiter"}},{"before":"65553d06495acc48dc279305482ffbb1ae9246d6","after":"f036ab31b7058af05496938b7a8e6bc02272b52b","ref":"refs/heads/master","pushedAt":"2023-05-03T09:10:46.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"Mons","name":null,"path":"/Mons","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26923?s=80&v=4"},"commit":{"message":"Merge pull request #6 from moonlibs/fix-readme\n\nFixes codestyle, markdown, annotations and more tests for the sync","shortMessageHtmlLink":"Merge pull request #6 from moonlibs/fix-readme"}},{"before":"1c73ae4fca0a207724f95f8790d068a54581a8c6","after":"548b876ce3de77f3ab10b6eedb0eec5a8d2f5d41","ref":"refs/heads/fix-readme","pushedAt":"2023-04-30T19:58:24.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"ochaton","name":"Vladislav Grubov","path":"/ochaton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11244356?s=80&v=4"},"commit":{"message":"Adds annotations tests and unnecessary wakeups in sync/pool","shortMessageHtmlLink":"Adds annotations tests and unnecessary wakeups in sync/pool"}},{"before":null,"after":"1c73ae4fca0a207724f95f8790d068a54581a8c6","ref":"refs/heads/fix-readme","pushedAt":"2023-04-30T09:51:57.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ochaton","name":"Vladislav Grubov","path":"/ochaton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11244356?s=80&v=4"},"commit":{"message":"fixes markdown style violations","shortMessageHtmlLink":"fixes markdown style violations"}},{"before":"75962c7bd7e74537ea2c2ab4e0966f6828f2d164","after":"65553d06495acc48dc279305482ffbb1ae9246d6","ref":"refs/heads/master","pushedAt":"2023-04-27T23:20:30.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"Mons","name":null,"path":"/Mons","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26923?s=80&v=4"},"commit":{"message":"Merge pull request #5 from moonlibs/4-syncpool-failed-at-terminating","shortMessageHtmlLink":"Merge pull request #5 from moonlibs/4-syncpool-failed-at-terminating"}},{"before":"cb8c522a24e4f481b096f0cabc02c075abc5060e","after":"2a01da82610afddd2574402166d2848a365d5734","ref":"refs/heads/4-syncpool-failed-at-terminating","pushedAt":"2023-04-27T20:29:05.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ochaton","name":"Vladislav Grubov","path":"/ochaton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11244356?s=80&v=4"},"commit":{"message":"Release 0.10.1\n\n\t* This patch introduces more tests to sync/pool and extends doc\n\t* Adds coverage with luacov\n\t* Bumps version to 0.10.1\n\t* Closes issue/4\n\nRemoved: nothing","shortMessageHtmlLink":"Release 0.10.1"}},{"before":"6e2e3dc5f82f1cab3be5a24c5ce71f180f385019","after":"cb8c522a24e4f481b096f0cabc02c075abc5060e","ref":"refs/heads/4-syncpool-failed-at-terminating","pushedAt":"2023-04-27T20:23:43.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ochaton","name":"Vladislav Grubov","path":"/ochaton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11244356?s=80&v=4"},"commit":{"message":"coverage via luacov","shortMessageHtmlLink":"coverage via luacov"}},{"before":"a8142b6fada5fed45480afac86f809df4e69e791","after":"6e2e3dc5f82f1cab3be5a24c5ce71f180f385019","ref":"refs/heads/4-syncpool-failed-at-terminating","pushedAt":"2023-04-27T20:08:13.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ochaton","name":"Vladislav Grubov","path":"/ochaton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11244356?s=80&v=4"},"commit":{"message":"coverage via luacov","shortMessageHtmlLink":"coverage via luacov"}},{"before":"9d81db0f771fe9e016cbe3e5bd187c0f5a08f252","after":"a8142b6fada5fed45480afac86f809df4e69e791","ref":"refs/heads/4-syncpool-failed-at-terminating","pushedAt":"2023-04-27T20:00:16.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ochaton","name":"Vladislav Grubov","path":"/ochaton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11244356?s=80&v=4"},"commit":{"message":"coverage via luacov","shortMessageHtmlLink":"coverage via luacov"}},{"before":"6b49513ea6efc7190921fd01a563b1df095ef36e","after":"9d81db0f771fe9e016cbe3e5bd187c0f5a08f252","ref":"refs/heads/4-syncpool-failed-at-terminating","pushedAt":"2023-04-27T19:56:56.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ochaton","name":"Vladislav Grubov","path":"/ochaton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11244356?s=80&v=4"},"commit":{"message":"coverage via luacov","shortMessageHtmlLink":"coverage via luacov"}},{"before":"425d4eedb41f36c24c5a2c32e3dfa8f28ac3bf24","after":"6b49513ea6efc7190921fd01a563b1df095ef36e","ref":"refs/heads/4-syncpool-failed-at-terminating","pushedAt":"2023-04-27T19:55:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"ochaton","name":"Vladislav Grubov","path":"/ochaton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11244356?s=80&v=4"},"commit":{"message":"coverage via luacov","shortMessageHtmlLink":"coverage via luacov"}},{"before":"75962c7bd7e74537ea2c2ab4e0966f6828f2d164","after":"425d4eedb41f36c24c5a2c32e3dfa8f28ac3bf24","ref":"refs/heads/4-syncpool-failed-at-terminating","pushedAt":"2023-04-27T19:45:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"ochaton","name":"Vladislav Grubov","path":"/ochaton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11244356?s=80&v=4"},"commit":{"message":"Closes issues/4\n\n\t* This patch introduces more tests to sync/pool and extends doc","shortMessageHtmlLink":"Closes issues/4"}},{"before":null,"after":"75962c7bd7e74537ea2c2ab4e0966f6828f2d164","ref":"refs/heads/4-syncpool-failed-at-terminating","pushedAt":"2023-04-27T17:37:20.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ochaton","name":"Vladislav Grubov","path":"/ochaton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11244356?s=80&v=4"},"commit":{"message":"Fixes README.md\n\nThanks to @R-omk","shortMessageHtmlLink":"Fixes README.md"}},{"before":"abd7c735f7c0de285bb1c1dabe5292d850ac33a4","after":"75962c7bd7e74537ea2c2ab4e0966f6828f2d164","ref":"refs/heads/master","pushedAt":"2023-03-21T11:33:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"ochaton","name":"Vladislav Grubov","path":"/ochaton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11244356?s=80&v=4"},"commit":{"message":"Fixes README.md\n\nThanks to @R-omk","shortMessageHtmlLink":"Fixes README.md"}},{"before":"566be57e21d534003b435124637f882e4a0d8865","after":"abd7c735f7c0de285bb1c1dabe5292d850ac33a4","ref":"refs/heads/master","pushedAt":"2023-03-16T13:24:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"ochaton","name":"Vladislav Grubov","path":"/ochaton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11244356?s=80&v=4"},"commit":{"message":"Release 0.10.0\n\n\t* Implements fire-and-forget fiber pool (beta)","shortMessageHtmlLink":"Release 0.10.0"}},{"before":"23e32be249127b56162be78189d68953995d32d3","after":"566be57e21d534003b435124637f882e4a0d8865","ref":"refs/heads/master","pushedAt":"2023-03-16T13:18:11.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"Mons","name":null,"path":"/Mons","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/26923?s=80&v=4"},"commit":{"message":"Merge pull request #2 from moonlibs/pool\n\nImplements sync/pool a.k.a fiber pool","shortMessageHtmlLink":"Merge pull request #2 from moonlibs/pool"}},{"before":"6a01f67ea07eb989482dcb524af11d33806f83db","after":"cde3f864564b31e8eadce8308743349d7ca5aad2","ref":"refs/heads/pool","pushedAt":"2023-03-15T20:44:02.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ochaton","name":"Vladislav Grubov","path":"/ochaton","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11244356?s=80&v=4"},"commit":{"message":"implements sync/pool a.k.a fiber pool","shortMessageHtmlLink":"implements sync/pool a.k.a fiber pool"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wMy0wM1QyMjo0MTo1OC4wMDAwMDBazwAAAAQLM5nl","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wMy0wM1QyMjo0MTo1OC4wMDAwMDBazwAAAAQLM5nl","endCursor":"Y3Vyc29yOnYyOpK7MjAyMy0wMy0xNVQyMDo0NDowMi4wMDAwMDBazwAAAAMEVDZF"}},"title":"Activity ยท moonlibs/sync"}