2023-03-08 18:25:38 +00:00
<!doctype html> < html lang = en > < head > < meta charset = utf-8 > < meta name = description content = "tinycthread / API doc
概要 スレッド関係の機能を提供するlightweightなライブラリ mtx: mutex cnd: condition variable thrd: thread tss: thread-specific storage C11 zlib license マルチプラットフォーム CMake利用可能 導入方法 CMake: FetchContent 1 2 3 4 5 6 7 8 9 10 # ---- tinycthread ---- # repository: https://github.">< meta property = "og:title" content = "tinycthread" > < meta property = "og:description" content = "tinycthread / API doc
概要 スレッド関係の機能を提供するlightweightなライブラリ mtx: mutex cnd: condition variable thrd: thread tss: thread-specific storage C11 zlib license マルチプラットフォーム CMake利用可能 導入方法 CMake: FetchContent 1 2 3 4 5 6 7 8 9 10 # ---- tinycthread ---- # repository: https://github.">< meta property = "og:type" content = "website" > < meta property = "og:image" content = "https://ar.falsy.cat/icon.png" > < meta property = "og:url" content = "https://ar.falsy.cat/note/info-tech/tinycthread/" > < meta property = "og:width" content = "200" > < meta property = "og:height" content = "200" > < meta name = twitter:card content = "summary" > < meta name = twitter:title content = "tinycthread" > < meta name = twitter:description content = "tinycthread / API doc
概要 スレッド関係の機能を提供するlightweightなライブラリ mtx: mutex cnd: condition variable thrd: thread tss: thread-specific storage C11 zlib license マルチプラットフォーム CMake利用可能 導入方法 CMake: FetchContent 1 2 3 4 5 6 7 8 9 10 # ---- tinycthread ---- # repository: https://github.">< meta name = twitter:image content = "https://ar.falsy.cat/icon.png" > < title > tinycthread< / title > < meta name = viewport content = "width=device-width,initial-scale=1" > < link rel = "shortcut icon" type = image/png href = https://ar.falsy.cat//icon.png > < link href = https://ar.falsy.cat/styles.b369a84b3c6e6bfd686ad1f9da65641c.min.css rel = stylesheet > < link href = https://ar.falsy.cat/styles/_light_syntax.86a48a52faebeaaf42158b72922b1c90.min.css rel = stylesheet id = theme-link > < script src = https://ar.falsy.cat/js/darkmode.557cde7fcc3511a3d7ca8545ecd46d77.min.js > < / script >
< script src = https://ar.falsy.cat/js/util.a0ccf91e1937fe761a74da4946452710.min.js > < / script >
< link rel = preload href = https://cdn.jsdelivr.net/npm/katex@0.15.1/dist/katex.min.css as = style onload = 'this.onload=null,this.rel="stylesheet"' integrity = sha384-R4558gYOUz8mP9YWpZJjofhk+zx0AS11p36HnD2ZKj/6JR5z27gSSULCNHIRReVs crossorigin = anonymous > < script defer src = https://cdn.jsdelivr.net/npm/katex@0.15.1/dist/katex.min.js integrity = sha384-z1fJDqw8ZApjGO3/unPWUPsIymfsJmyrDVWC8Tv/a1HeOtGmkwNd/7xUS0Xcnvsx crossorigin = anonymous > < / script >
< script defer src = https://cdn.jsdelivr.net/npm/katex@0.15.1/dist/contrib/auto-render.min.js integrity = sha384-+XBljXPPiv+OzfbB3cVmLHf4hdUFHlWNZN5spNQ7rmHTXpd7WvJum6fIACpNNfIR crossorigin = anonymous > < / script >
< script defer src = https://cdn.jsdelivr.net/npm/katex@0.16.2/dist/contrib/copy-tex.min.js integrity = sha384-ww/583aHhxWkz5DEVn6OKtNiIaLi2iBRNZXfJRiY1Ai7tnJ9UXpEsyvOITVpTl4A crossorigin = anonymous > < / script >
< script async src = https://unpkg.com/@floating-ui/core@0.7.3 > < / script >
< script async src = https://unpkg.com/@floating-ui/dom@0.5.4 > < / script >
< script async src = https://ar.falsy.cat/js/popover.aa9bc99c7c38d3ae9538f218f1416adb.min.js > < / script >
< script defer src = https://ar.falsy.cat/js/code-title.ce4a43f09239a9efb48fee342e8ef2df.min.js > < / script >
< script defer src = https://ar.falsy.cat/js/clipboard.2913da76d3cb21c5deaa4bae7da38c9f.min.js > < / script >
< script defer src = https://ar.falsy.cat/js/callouts.7723cac461d613d118ee8bb8216b9838.min.js > < / script >
2023-03-11 14:59:26 +00:00
< script > const SEARCH _ENABLED = ! 1 , LATEX _ENABLED = ! 0 , PRODUCTION = ! 0 , BASE _URL = "https://ar.falsy.cat/" , fetchData = Promise . all ( [ fetch ( "https://ar.falsy.cat/indices/linkIndex.4198853518f5115a4e9349bae3cb279b.min.json" ) . then ( e => e . json ( ) ) . then ( e => ( { index : e . index , links : e . links } ) ) , fetch ( "https://ar.falsy.cat/indices/contentIndex.c1470b01a6963cafcf8d8c7df974351a.min.json" ) . then ( e => e . json ( ) ) ] ) . then ( ( [ { index : e , links : t } , n ] ) => ( { index : e , links : t , content : n } ) ) , render = ( ) => { const e = new URL ( BASE _URL ) , t = e . pathname , n = window . location . pathname , s = t == n ; addCopyButtons ( ) , addTitleToCodeBlocks ( ) , addCollapsibleCallouts ( ) , initPopover ( "https://ar.falsy.cat" , ! 0 ) ; const o = document . getElementById ( "footer" ) ; if ( o ) { const e = document . getElementById ( "graph-container" ) ; if ( ! e ) return requestAnimationFrame ( render ) ; e . textContent = "" ; const t = s && ! 0 ; drawGraph ( "https://ar.falsy.cat" , t , [ { "/moc" : "#4388cc" } ] , t ? { centerForce : 1 , depth : - 1 , enableDrag : ! 0 , enableLegend : ! 1 , enableZoom : ! 0 , fontSize : . 5 , linkDistance : 1 , opacityScale : 3 , repelForce : 1 , scale : 1.4 } : { centerForce : 1 , depth : 1 , enableDrag : ! 0 , enableLegend : ! 1 , enableZoom : ! 0 , fontSize : . 6 , linkDistance : 1 , opacityScale : 3 , repelForce : 2 , scale : 1.2 } ) } var i = document . getElementsByClassName ( "mermaid" ) ; i . length > 0 && import ( "https://unpkg.com/mermaid@9/dist/mermaid.esm.min.mjs" ) . then ( e => { e . default . init ( ) } ) ; function a ( n ) { const e = n . target , t = e . className . split ( " " ) , s = t . includes ( "broken" ) , o = t . includes ( "internal-link" ) ; plausible ( "Link Click" , { props : { href : e . href , broken : s , internal : o , graph : ! 1 } } ) } const r = document . querySelectorAll ( "a" ) ; for ( link of r ) link . className . includes ( "root-title" ) && link . addEventListener ( "click" , a , { once : ! 0 } ) } , init = ( e = document ) => { addCopyButtons ( ) , addTitleToCodeBlocks ( ) , renderMathInElement ( e . body , { delimiters : [ { left : "$$" , right : "$$" , display : ! 0 } , { left : "$" , right : "$" , display : ! 1 } ] , macros : { '’ ' : "'" } , throwOnError : ! 1 } ) } < / script > < script type = module >
2023-03-08 18:25:38 +00:00
import { attachSPARouting } from "https:\/\/ar.falsy.cat\/js\/router.d6fe6bd821db9ea97f9aeefae814d8e7.min.js"
attachSPARouting(init, render)
< / script > < script defer data-domain = ar.falsy.cat src = https://plausible.io/js/script.js > < / script >
< script > window . plausible = window . plausible || function ( ) { ( window . plausible . q = window . plausible . q || [ ] ) . push ( arguments ) } < / script > < / head > < body > < div id = search-container > < div id = search-space > < input autocomplete = off id = search-bar name = search type = text aria-label = Search placeholder = "Search for something..." > < div id = results-container > < / div > < / div > < / div > < script src = https://cdn.jsdelivr.net/npm/flexsearch@0.7.21/dist/flexsearch.bundle.js integrity = "sha256-i3A0NZGkhsKjVMzFxv3ksk0DZh3aXqu0l49Bbh0MdjE=" crossorigin = anonymous defer > < / script >
< script defer src = https://ar.falsy.cat/js/full-text-search.e6e2e0c213187ca0c703d6e2c7a77fcd.min.js > < / script > < div class = singlePage > < header > < h1 id = page-title > < a class = root-title href = https://ar.falsy.cat/ > ar.falsy.cat< / a > < / h1 > < div class = spacer > < / div > < div id = search-icon > < p > Search< / p > < svg tabindex = "0" aria-labelledby = "title desc" role = "img" xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 19.9 19.7" > < title id = "title" > Search Icon< / title > < desc id = "desc" > Icon to open search< / desc > < g class = "search-path" fill = "none" > < path stroke-linecap = "square" d = "M18.5 18.3l-5.4-5.4" / > < circle cx = "8" cy = "8" r = "7" / > < / g > < / svg > < / div > < div class = darkmode > < input class = toggle id = darkmode-toggle type = checkbox tabindex = -1 >
< label id = toggle-label-light for = darkmode-toggle tabindex = -1 > < svg xmlns = "http://www.w3.org/2000/svg" xmlns:xlink = "http://www.w3.org/1999/xlink" id = "dayIcon" viewBox = "0 0 35 35" style = "enable-background:new 0 0 35 35" > < title > Light Mode< / title > < path d = "M6 17.5C6 16.672 5.328 16 4.5 16h-3C.672 16 0 16.672.0 17.5S.672 19 1.5 19h3C5.328 19 6 18.328 6 17.5zM7.5 26c-.414.0-.789.168-1.061.439l-2 2C4.168 28.711 4 29.086 4 29.5 4 30.328 4.671 31 5.5 31c.414.0.789-.168 1.06-.44l2-2C8.832 28.289 9 27.914 9 27.5 9 26.672 8.329 26 7.5 26zm10-20C18.329 6 19 5.328 19 4.5v-3C19 .672 18.329.0 17.5.0S16 .672 16 1.5v3C16 5.328 16.671 6 17.5 6zm10 3c.414.0.789-.168 1.06-.439l2-2C30.832 6.289 31 5.914 31 5.5 31 4.672 30.329 4 29.5 4c-.414.0-.789.168-1.061.44l-2 2C26.168 6.711 26 7.086 26 7.5 26 8.328 26.671 9 27.5 9zM6.439 8.561C6.711 8.832 7.086 9 7.5 9 8.328 9 9 8.328 9 7.5c0-.414-.168-.789-.439-1.061l-2-2C6.289 4.168 5.914 4 5.5 4 4.672 4 4 4.672 4 5.5c0 .414.168.789.439 1.06l2 2.001zM33.5 16h-3c-.828.0-1.5.672-1.5 1.5s.672 1.5 1.5 1.5h3c.828.0 1.5-.672 1.5-1.5S34.328 16 33.5 16zM28.561 26.439C28.289 26.168 27.914 26 27.5 26c-.828.0-1.5.672-1.5 1.5.0.414.168.789.439 1.06l2 2C28.711 30.832 29.086 31 29.5 31c.828.0 1.5-.672 1.5-1.5.0-.414-.168-.789-.439-1.061l-2-2zM17.5 29c-.829.0-1.5.672-1.5 1.5v3c0 .828.671 1.5 1.5 1.5s1.5-.672 1.5-1.5v-3C19 29.672 18.329 29 17.5 29zm0-22C11.71 7 7 11.71 7 17.5S11.71 28 17.5 28 28 23.29 28 17.5 23.29 7 17.5 7zm0 18c-4.136.0-7.5-3.364-7.5-7.5s3.364-7.5 7.5-7.5 7.5 3.364 7.5 7.5S21.636 25 17.5 25z" / > < / svg > < / label > < label id = toggle-label-dark for = darkmode-toggle tabindex = -1 > < svg xmlns = "http://www.w3.org/2000/svg" xmlns:xlink = "http://www.w3.org/1999/xlink" id = "nightIcon" viewBox = "0 0 100 100" style = "enable-background='new 0 0 100 100'" > < title > Dark Mode< / title > < path d = "M96.76 66.458c-.853-.852-2.15-1.064-3.23-.534-6.063 2.991-12.858 4.571-19.655 4.571C62.022 70.495 50.88 65.88 42.5 57.5 29.043 44.043 25.658 23.536 34.076 6.47c.532-1.08.318-2.379-.534-3.23-.851-.852-2.15-1.064-3.23-.534-4.918 2.427-9.375 5.619-13.246 9.491-9.447 9.447-14.65 22.008-14.65 35.369.0 13.36 5.203 25.921 14.65 35.368s22.008 14.65 35.368 14.65c13.361.0 25.921-5.203 35.369-14.65 3.872-3.871 7.064-8.328 9.491-13.246C97.826 68.608 97.611 67.309 96.76 66.458z" / > < / svg > < / label > < / div > < / header > < article > < h1 > tinycthread< / h1 > < p class = meta > Last updated
Mar 9, 2023< / p > < ul class = tags > < li > < a href = https://ar.falsy.cat/tags/note/ > Note< / a > < / li > < li > < a href = https://ar.falsy.cat/tags/info-tech/ > Info tech< / a > < / li > < li > < a href = https://ar.falsy.cat/tags/c-language/ > C language< / a > < / li > < li > < a href = https://ar.falsy.cat/tags/development/ > Development< / a > < / li > < / ul > < aside class = mainTOC > < details > < summary > Table of Contents< / summary > < nav id = TableOfContents > < ol > < li > < a href = #概要 > 概要< / a > < / li > < li > < a href = #導入方法 > 導入方法< / a > < ol > < li > < a href = #cmake-fetchcontent > CMake: FetchContent< / a > < / li > < / ol > < / li > < / ol > < / nav > < / details > < / aside > < p > < a href = https://tinycthread.github.io rel = noopener > tinycthread< / a > /
< a href = https://tinycthread.github.io/doc/tinycthread_8h.html rel = noopener > API doc< / a > < / p > < a href = #概要 > < h2 id = 概要 > < span class = hanchor arialabel = Anchor > # < / span > 概要< / h2 > < / a > < ul > < li > スレッド関係の機能を提供するlightweightなライブラリ< ul > < li > < code > mtx< / code > : mutex< / li > < li > < code > cnd< / code > : condition variable< / li > < li > < code > thrd< / code > : thread< / li > < li > < code > tss< / code > : thread-specific storage< / li > < / ul > < / li > < li > C11< / li > < li > zlib license< / li > < li > マルチプラットフォーム< / li > < li > CMake利用可能< / li > < / ul > < a href = #導入方法 > < h2 id = 導入方法 > < span class = hanchor arialabel = Anchor > # < / span > 導入方法< / h2 > < / a > < a href = #cmake-fetchcontent > < h3 id = cmake-fetchcontent > < span class = hanchor arialabel = Anchor > # < / span > CMake: FetchContent< / h3 > < / a > < div class = highlight > < div class = chroma > < table class = lntable > < tr > < td class = lntd > < pre tabindex = 0 class = chroma > < code > < span class = lnt > 1
< / span > < span class = lnt > 2
< / span > < span class = lnt > 3
< / span > < span class = lnt > 4
< / span > < span class = lnt > 5
< / span > < span class = lnt > 6
< / span > < span class = lnt > 7
< / span > < span class = lnt > 8
< / span > < span class = lnt > 9
< / span > < span class = lnt > 10
< / span > < / code > < / pre > < / td > < td class = lntd > < pre tabindex = 0 class = chroma > < code class = language-cmake data-lang = cmake > < span class = line > < span class = cl > < span class = c > # ---- tinycthread ----
< / span > < / span > < / span > < span class = line > < span class = cl > < span class = c > # repository: https://github.com/tinycthread/tinycthread
< / span > < / span > < / span > < span class = line > < span class = cl > < span class = c > # license : zlib
< / span > < / span > < / span > < span class = line > < span class = cl > < span class = c > < / span > < span class = err >
< / span > < / span > < / span > < span class = line > < span class = cl > < span class = err > < / span > < span class = nb > FetchContent_Declare< / span > < span class = p > (< / span >
< / span > < / span > < span class = line > < span class = cl > < span class = s > tinycthread< / span >
< / span > < / span > < span class = line > < span class = cl > < span class = s > GIT_REPOSITORY< / span > < span class = s2 > " https://github.com/tinycthread/tinycthread.git" < / span >
< / span > < / span > < span class = line > < span class = cl > < span class = s > GIT_TAG< / span > < span class = s2 > " 6957fc8383d6c7db25b60b8c849b29caab1caaee" < / span >
< / span > < / span > < span class = line > < span class = cl > < span class = p > )< / span > < span class = err >
< / span > < / span > < / span > < span class = line > < span class = cl > < span class = err > < / span > < span class = nb > FetchContent_MakeAvailable< / span > < span class = p > (< / span > < span class = s > tinycthread< / span > < span class = p > )< / span > < span class = err >
< / span > < / span > < / span > < / code > < / pre > < / td > < / tr > < / table > < / div > < / div > < div class = content-list > < h2 > Related Notes< / h2 > < ul class = section-ul > < li class = section-li > < div class = section > < p class = meta > Mar 9, 2023< / p > < div class = desc > < h3 > < a href = https://ar.falsy.cat/note/info-tech/library-c-cpp/ class = internal-link data-src = /note/info-tech/library-c-cpp/ > C/C++のライブラリまとめ< / a > < / h3 > < / div > < div class = spacer > < / div > < ul class = tags > < li > < a href = https://ar.falsy.cat/tags/note/ > Note< / a > < / li > < li > < a href = https://ar.falsy.cat/tags/info-tech/ > Info-Tech< / a > < / li > < li > < a href = https://ar.falsy.cat/tags/c-language/ > C-Language< / a > < / li > < li > < a href = https://ar.falsy.cat/tags/cpp/ > Cpp< / a > < / li > < li > < a href = https://ar.falsy.cat/tags/development/ > Development< / a > < / li > < / ul > < / div > < / li > < li class = section-li > < div class = section > < p class = meta > Feb 24, 2023< / p > < div class = desc > < h3 > < a href = https://ar.falsy.cat/note/info-tech/install-archlinux/ class = internal-link data-src = /note/info-tech/install-archlinux/ > ArchLinuxのインストール< / a > < / h3 > < / div > < div class = spacer > < / div > < ul class = tags > < li > < a href = https://ar.falsy.cat/tags/note/ > Note< / a > < / li > < li > < a href = https://ar.falsy.cat/tags/info-tech/ > Info-Tech< / a > < / li > < li > < a href = https://ar.falsy.cat/tags/linux/ > Linux< / a > < / li > < / ul > < / div > < / li > < li class = section-li > < div class = section > < p class = meta > Feb 24, 2023< / p > < div class = desc > < h3 > < a href = https://ar.falsy.cat/note/info-tech/publish-obsidian-by-quartz/ class = internal-link data-src = /note/info-tech/publish-obsidian-by-quartz/ > ObsidianとQuartzによるセカンドブレインデジタルガーデンの構築< / a > < / h3 > < / div > < div class = spacer > < / div > < ul class = tags > < li > < a href = https://ar.falsy.cat/tags/note/ > Note< / a > < / li > < li > < a href = https://ar.falsy.cat/tags/info-tech/ > Info-Tech< / a > < / li > < li > < a href = https://ar.falsy.cat/tags/web/ > Web< / a > < / li > < / ul > < / div > < / li > < / ul > < / div > < / article > < hr > < div class = page-end id = footer > < div class = backlinks-container > < h3 > Backlinks< / h3 > < ul class = backlinks > < li > < a href = /note/info-tech/library-c-cpp/ data-ctx = tinycthread data-src = /note/info-tech/library-c-cpp class = internal-link > C/C++のライブラリまとめ< / a > < / li > < / ul > < / div > < div > < script async src = https://cdn.jsdelivr.net/npm/d3@6.7.0/dist/d3.min.js integrity = "sha256-+7jaYCp29O1JusNWHaYtgUn6EhuP0VaFuswhNV06MyI=" crossorigin = anonymous > < / script > < h3 > Interactive Graph< / h3 > < div id = graph-container > < / div > < style > : root { --g-node : var ( - - secondary ) ; --g-node-active : var ( - - primary ) ; --g-node-inactive : var ( - - visited ) ; --g-link : var ( - - outlinegray ) ; --g-link-active : #5a7282 } < / style > < script src = https://ar.falsy.cat/js/graph.6579af7b10c818dbd2ca038702db0224.js > < / script > < / div > < / div > < div id = contact_buttons > < footer > < p > Made by falsycat using < a href = https://github.com/jackyzha0/quartz > Quartz< / a > , © 2023< / p > < ul > < li > < a href = https://ar.falsy.cat/ > Home< / a > < / li > < li > < a href = https://falsy.cat/ > Portfolio< / a > < / li > < li > < a href = https://falsy.cat/admin > Fediverse< / a > < / li > < li > < a href = https://github.com/falsycat > GitHub< / a > < / li > < li > < a href = https://youtube.com/@falsycat > YouTube< / a > < / li > < / ul > < / footer > < / div > < / div > < / body > < / html >