{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":202967079,"defaultBranch":"master","name":"libbase","ownerLogin":"RippeR37","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2019-08-18T06:14:21.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/7466989?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1707742047.0","currentOid":""},"activityList":{"items":[{"before":null,"after":"0bdf99551aaf1e72c83aa7d1cecd6968d3adb7a2","ref":"refs/heads/r/ISSUE-39/1","pushedAt":"2024-02-12T12:47:27.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"RippeR37","name":"Damian Dyńdo","path":"/RippeR37","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7466989?s=80&v=4"},"commit":{"message":"[#39] Integrate with existing (main) Windows GUI thread\n\nThis commit adds a new class template called `base::WinThreadAttachment`\nwhich can be used to integrate libbase's cross-thread post-tasking with\nWindows native message queue system.\n\nExample usage:\n\n```cpp\n HWND hwnd = CreateWindowEx(/* ... */);\n\n // This must be done after creating a window and before main loop and\n // outlive the main loop.\n // `LIBBASE_TASK_MSG_ID` here is some custom integer provided by user\n // of this library that will not be used as any other message ID in\n // the app (e.g. `WM_APP+0`).\n base::WinThreadAttachment mainThread{hwnd};\n // As long as the `mainThread` lives, current thread will have\n // associated task runner that will post task to Window's message\n // queue and all such tasks will be executed between other messages\n // on that queue.\n\n // Main loop example\n MSG msg = {};\n while (GetMessage(&msg, NULL, 0, 0) > 0) {\n TranslateMessage(&msg);\n DispatchMessage(&msg);\n }\n```\n\nApart from there, new (Windows-only) example called `win32` has been\nadded to showcase new functionality.","shortMessageHtmlLink":"[#39] Integrate with existing (main) Windows GUI thread"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAD-Gu-cgA","startCursor":null,"endCursor":null}},"title":"Activity · RippeR37/libbase"}