2023-08-12 17:03:29 +00:00
<!DOCTYPE html>
2023-09-01 22:34:58 +00:00
< html class = "no-js" >
2023-08-12 17:03:29 +00:00
< head >
< meta name = "viewport" content = "width=device-width, initial-scale=1" charset = "UTF-8" >
< title > SmartSemaphore< / title >
< link href = "../../../images/logo-icon.svg" rel = "icon" type = "image/svg" >
< script > var pathToRoot = "../../../" ; < / script >
2023-09-01 22:34:58 +00:00
< script > document . documentElement . classList . replace ( "no-js" , "js" ) ; < / script >
2023-08-12 17:03:29 +00:00
< script > c o n s t s t o r a g e = l o c a l S t o r a g e . g e t I t e m ( " d o k k a - d a r k - m o d e " )
if (storage == null) {
const osDarkSchemePreferred = window.matchMedia & & window.matchMedia('(prefers-color-scheme: dark)').matches
if (osDarkSchemePreferred === true) {
document.getElementsByTagName("html")[0].classList.add("theme-dark")
}
} else {
const savedDarkMode = JSON.parse(storage)
if(savedDarkMode === true) {
document.getElementsByTagName("html")[0].classList.add("theme-dark")
}
}
< / script >
2023-09-01 22:34:58 +00:00
< script type = "text/javascript" src = "https://unpkg.com/kotlin-playground@1/dist/playground.min.js" async = "async" > < / script >
2023-08-12 17:03:29 +00:00
< script type = "text/javascript" src = "../../../scripts/sourceset_dependencies.js" async = "async" > < / script >
< link href = "../../../styles/style.css" rel = "Stylesheet" >
< link href = "../../../styles/main.css" rel = "Stylesheet" >
< link href = "../../../styles/prism.css" rel = "Stylesheet" >
< link href = "../../../styles/logo-styles.css" rel = "Stylesheet" >
2023-09-01 22:34:58 +00:00
< link href = "../../../styles/font-jb-sans-auto.css" rel = "Stylesheet" >
2023-08-12 17:03:29 +00:00
< script type = "text/javascript" src = "../../../scripts/clipboard.js" async = "async" > < / script >
< script type = "text/javascript" src = "../../../scripts/navigation-loader.js" async = "async" > < / script >
< script type = "text/javascript" src = "../../../scripts/platform-content-handler.js" async = "async" > < / script >
< script type = "text/javascript" src = "../../../scripts/main.js" defer = "defer" > < / script >
< script type = "text/javascript" src = "../../../scripts/prism.js" async = "async" > < / script >
< script type = "text/javascript" src = "../../../scripts/symbol-parameters-wrapper_deferred.js" defer = "defer" > < / script >
< / head >
< body >
2023-09-01 22:34:58 +00:00
< div class = "root" >
< nav class = "navigation" id = "navigation-wrapper" >
< div class = "navigation--inner" >
< div class = "navigation-title" >
< button class = "menu-toggle" id = "menu-toggle" type = "button" > toggle menu< / button >
< div class = "library-name" >
< a class = "library-name--link" href = "../../../index.html" >
micro_utils.dokka
< / a >
< / div >
< div class = "library-version" >
2023-09-06 13:34:24 +00:00
0.20.4 < / div >
2023-09-01 22:34:58 +00:00
< / div >
2023-08-12 17:03:29 +00:00
< div class = "filter-section" id = "filter-section" >
< button class = "platform-tag platform-selector common-like" data-active = "" data-filter = ":micro_utils.dokka:dokkaHtml/commonMain" > common< / button >
< / div >
< / div >
2023-09-01 22:34:58 +00:00
< div class = "navigation-controls" >
< button class = "navigation-controls--btn navigation-controls--theme" id = "theme-toggle-button" type = "button" > switch theme< / button >
< div class = "navigation-controls--btn navigation-controls--search" id = "searchBar" role = "button" > search in API< / div >
2023-08-12 17:03:29 +00:00
< / div >
2023-09-01 22:34:58 +00:00
< / nav >
< div id = "container" >
< div class = "sidebar" id = "leftColumn" >
< div class = "sidebar--inner" id = "sideMenu" > < / div >
< / div >
< div id = "main" >
2023-08-12 17:03:29 +00:00
< div class = "main-content" data-page-type = "classlike" id = "content" pageIds = "micro_utils.dokka::dev.inmo.micro_utils.coroutines/SmartSemaphore///PointingToDeclaration//-1478683138" >
< div class = "breadcrumbs" > < a href = "../../../index.html" > micro_utils.dokka< / a > < span class = "delimiter" > /< / span > < a href = "../index.html" > dev.inmo.micro_utils.coroutines< / a > < span class = "delimiter" > /< / span > < span class = "current" > SmartSemaphore< / span > < / div >
< div class = "cover " >
< h1 class = "cover" > < span > Smart< / span > < wbr > < / wbr > < span > < span > Semaphore< / span > < / span > < / h1 >
2023-09-01 22:34:58 +00:00
< div class = "platform-hinted " data-platform-hinted = "data-platform-hinted" > < div class = "content sourceset-dependent-content" data-active = "" data-togglable = ":micro_utils.dokka:dokkaHtml/commonMain" > < div class = "symbol monospace" > < span class = "token keyword" > interface < / span > < a href = "index.html" > SmartSemaphore< / a > < span class = "clearfix" > < span class = "floating-right" > (< a href = "https://github.com/InsanusMokrassar/MicroUtils/blob/master//coroutines/src/commonMain/kotlin/dev/inmo/micro_utils/coroutines/SmartSemaphore.kt#L26" > source< / a > )< / span > < / span > < / div > < p class = "paragraph" > It is interface which will work like classic < span data-unresolved-link = "kotlinx.coroutines.sync/Semaphore///PointingToDeclaration/" > Semaphore< / span > , but in difference have < a href = "permits-state-flow.html" > permitsStateFlow< / a > for listening of the < a href = "index.html" > SmartSemaphore< / a > state.< / p > < p class = "paragraph" > There is < a href = "-mutable/index.html" > Mutable< / a > and < a href = "-immutable/index.html" > Immutable< / a > realizations. In case you are owner and manager current state of lock, you need < a href = "index.html" > Mutable< / a > . Otherwise, < a href = "-immutable/index.html" > Immutable< / a > .< / p > < p class = "paragraph" > Any < a href = "index.html" > Mutable< / a > may produce its < a href = "-immutable/index.html" > Immutable< / a > variant which will contains < a href = "permits-state-flow.html" > permitsStateFlow< / a > equal to its < a href = "-mutable/index.html" > Mutable< / a > creator< / p > < h4 class = "" > Inheritors< / h4 > < div class = "table" > < div class = "table-row" data-filterable-current = ":micro_utils.dokka:dokkaHtml/commonMain" data-filterable-set = ":micro_utils.dokka:dokkaHtml/commonMain" > < div class = "main-subrow keyValue " > < div class = "" > < span class = "inline-flex" > < div > < a href = "-immutable/index.html" > Immutable< / a > < / div > < / span > < / div > < div > < / div > < / div > < / div > < div class = "table-row" data-filterable-current = ":micro_utils.dokka:dokkaHtml/commonMain" data-filterable-set = ":micro_utils.dokka:dokkaHtml/commonMain" > < div class = "main-subrow keyValue " > < div class = "" > < span class = "inline-flex" > < div > < a href = "-mutable/index.html" > Mutable< / a > < / div > < / span > < / div > < div > < / div > < / div > < / div > < / div > < / div > < / div >
2023-08-12 17:03:29 +00:00
< / div >
< div class = "tabbedcontent" >
< div class = "tabs-section" tabs-section = "tabs-section" > < button class = "section-tab" data-active = "" data-togglable = "CONSTRUCTOR,TYPE,PROPERTY,FUNCTION" > Members< / button > < button class = "section-tab" data-togglable = "CONSTRUCTOR,TYPE,PROPERTY,FUNCTION,EXTENSION_PROPERTY,EXTENSION_FUNCTION" > Members & Extensions< / button > < / div >
< div class = "tabs-section-body" >
< div data-togglable = "TYPE" >
< h2 class = "" > Types< / h2 >
< div class = "table" > < a data-name = "-1675620172%2FClasslikes%2F-1478683138" anchor-label = "Immutable" id = "-1675620172%2FClasslikes%2F-1478683138" data-filterable-set = ":micro_utils.dokka:dokkaHtml/commonMain" > < / a >
< div class = "table-row" data-filterable-current = ":micro_utils.dokka:dokkaHtml/commonMain" data-filterable-set = ":micro_utils.dokka:dokkaHtml/commonMain" >
< div class = "main-subrow keyValue " >
< div class = "" > < span class = "inline-flex" >
< div > < a href = "-immutable/index.html" > < span > < span > Immutable< / span > < / span > < / a > < / div >
< span class = "anchor-wrapper" > < span class = "anchor-icon" pointing-to = "-1675620172%2FClasslikes%2F-1478683138" > < / span >
< div class = "copy-popup-wrapper " > < span class = "copy-popup-icon" > < / span > < span > Link copied to clipboard< / span > < / div >
< / span > < / span > < / div >
< div >
< div class = "title" >
< div class = "platform-hinted " data-platform-hinted = "data-platform-hinted" > < div class = "content sourceset-dependent-content" data-active = "" data-togglable = ":micro_utils.dokka:dokkaHtml/commonMain" > < div class = "symbol monospace" > < span class = "token keyword" > class < / span > < a href = "-immutable/index.html" > Immutable< / a > < span class = "token punctuation" > (< / span > < span class = "parameters " > < span class = "parameter " > < span class = "token keyword" > val < / span > permitsStateFlow< span class = "token operator" > : < / span > < span data-unresolved-link = "kotlinx.coroutines.flow/StateFlow///PointingToDeclaration/" > StateFlow< / span > < span class = "token operator" > < < / span > < span class = "token keyword" > < / span > < a href = "https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html" > Int< / a > < span class = "token operator" > > < / span > < / span > < / span > < span class = "token punctuation" > )< / span > : < a href = "index.html" > SmartSemaphore< / a > < / div > < div class = "brief " > < p class = "paragraph" > Immutable variant of < a href = "index.html" > SmartSemaphore< / a > . In fact will depend on the owner of < a href = "-immutable/permits-state-flow.html" > permitsStateFlow< / a > < / p > < / div > < / div > < / div >
< / div >
< / div >
< / div >
< / div >
< a data-name = "-1088667440%2FClasslikes%2F-1478683138" anchor-label = "Mutable" id = "-1088667440%2FClasslikes%2F-1478683138" data-filterable-set = ":micro_utils.dokka:dokkaHtml/commonMain" > < / a >
< div class = "table-row" data-filterable-current = ":micro_utils.dokka:dokkaHtml/commonMain" data-filterable-set = ":micro_utils.dokka:dokkaHtml/commonMain" >
< div class = "main-subrow keyValue " >
< div class = "" > < span class = "inline-flex" >
< div > < a href = "-mutable/index.html" > < span > < span > Mutable< / span > < / span > < / a > < / div >
< span class = "anchor-wrapper" > < span class = "anchor-icon" pointing-to = "-1088667440%2FClasslikes%2F-1478683138" > < / span >
< div class = "copy-popup-wrapper " > < span class = "copy-popup-icon" > < / span > < span > Link copied to clipboard< / span > < / div >
< / span > < / span > < / div >
< div >
< div class = "title" >
< div class = "platform-hinted " data-platform-hinted = "data-platform-hinted" > < div class = "content sourceset-dependent-content" data-active = "" data-togglable = ":micro_utils.dokka:dokkaHtml/commonMain" > < div class = "symbol monospace" > < span class = "token keyword" > class < / span > < a href = "-mutable/index.html" > Mutable< / a > < span class = "token punctuation" > (< / span > < span class = "parameters " > < span class = "parameter " > permits< span class = "token operator" > : < / span > < a href = "https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html" > Int< / a > < span class = "token punctuation" > , < / span > < / span > < span class = "parameter " > acquiredPermits< span class = "token operator" > : < / span > < a href = "https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html" > Int< / a > < span class = "token operator" > = < / span > < span class = "token constant" > 0< / span > < / span > < / span > < span class = "token punctuation" > )< / span > : < a href = "index.html" > SmartSemaphore< / a > < / div > < div class = "brief " > < p class = "paragraph" > Mutable variant of < a href = "index.html" > SmartSemaphore< / a > . With that variant you may lock and unlock. Besides, you may create < a href = "-immutable/index.html" > Immutable< / a > variant of this instance with < a href = "-mutable/immutable.html" > immutable< / a > factory< / p > < / div > < / div > < / div >
< / div >
< / div >
< / div >
< / div >
< / div >
< / div >
< div data-togglable = "PROPERTY" >
< h2 class = "" > Properties< / h2 >
< div class = "table" > < a data-name = "-2119127689%2FProperties%2F-1478683138" anchor-label = "freePermits" id = "-2119127689%2FProperties%2F-1478683138" data-filterable-set = ":micro_utils.dokka:dokkaHtml/commonMain" > < / a >
< div class = "table-row" data-filterable-current = ":micro_utils.dokka:dokkaHtml/commonMain" data-filterable-set = ":micro_utils.dokka:dokkaHtml/commonMain" >
< div class = "main-subrow keyValue " >
< div class = "" > < span class = "inline-flex" >
< div > < a href = "free-permits.html" > < span > free< / span > < wbr > < / wbr > < span > < span > Permits< / span > < / span > < / a > < / div >
< span class = "anchor-wrapper" > < span class = "anchor-icon" pointing-to = "-2119127689%2FProperties%2F-1478683138" > < / span >
< div class = "copy-popup-wrapper " > < span class = "copy-popup-icon" > < / span > < span > Link copied to clipboard< / span > < / div >
< / span > < / span > < / div >
< div >
< div class = "title" >
< div class = "platform-hinted " data-platform-hinted = "data-platform-hinted" > < div class = "content sourceset-dependent-content" data-active = "" data-togglable = ":micro_utils.dokka:dokkaHtml/commonMain" > < div class = "symbol monospace" > < span class = "token keyword" > open < / span > < span class = "token keyword" > < / span > < span class = "token keyword" > val < / span > < a href = "free-permits.html" > freePermits< / a > < span class = "token operator" > : < / span > < a href = "https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html" > Int< / a > < / div > < / div > < / div >
< / div >
< / div >
< / div >
< / div >
< a data-name = "1487053040%2FProperties%2F-1478683138" anchor-label = "permitsStateFlow" id = "1487053040%2FProperties%2F-1478683138" data-filterable-set = ":micro_utils.dokka:dokkaHtml/commonMain" > < / a >
< div class = "table-row" data-filterable-current = ":micro_utils.dokka:dokkaHtml/commonMain" data-filterable-set = ":micro_utils.dokka:dokkaHtml/commonMain" >
< div class = "main-subrow keyValue " >
< div class = "" > < span class = "inline-flex" >
< div > < a href = "permits-state-flow.html" > < span > permits< / span > < wbr > < / wbr > < span > State< / span > < wbr > < / wbr > < span > < span > Flow< / span > < / span > < / a > < / div >
< span class = "anchor-wrapper" > < span class = "anchor-icon" pointing-to = "1487053040%2FProperties%2F-1478683138" > < / span >
< div class = "copy-popup-wrapper " > < span class = "copy-popup-icon" > < / span > < span > Link copied to clipboard< / span > < / div >
< / span > < / span > < / div >
< div >
< div class = "title" >
< div class = "platform-hinted " data-platform-hinted = "data-platform-hinted" > < div class = "content sourceset-dependent-content" data-active = "" data-togglable = ":micro_utils.dokka:dokkaHtml/commonMain" > < div class = "symbol monospace" > < span class = "token keyword" > abstract < / span > < span class = "token keyword" > < / span > < span class = "token keyword" > val < / span > < a href = "permits-state-flow.html" > permitsStateFlow< / a > < span class = "token operator" > : < / span > < span data-unresolved-link = "kotlinx.coroutines.flow/StateFlow///PointingToDeclaration/" > StateFlow< / span > < span class = "token operator" > < < / span > < span class = "token keyword" > < / span > < a href = "https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html" > Int< / a > < span class = "token operator" > > < / span > < / div > < / div > < / div >
< / div >
< / div >
< / div >
< / div >
< / div >
< / div >
< div data-togglable = "EXTENSION_FUNCTION" >
< h2 class = "" > Functions< / h2 >
< div class = "table" > < a data-name = "965013650%2FFunctions%2F-1478683138" anchor-label = "waitRelease" id = "965013650%2FFunctions%2F-1478683138" data-filterable-set = ":micro_utils.dokka:dokkaHtml/commonMain" > < / a >
< div class = "table-row" data-togglable = "EXTENSION_FUNCTION" data-filterable-current = ":micro_utils.dokka:dokkaHtml/commonMain" data-filterable-set = ":micro_utils.dokka:dokkaHtml/commonMain" >
< div class = "main-subrow keyValue " >
< div class = "" > < span class = "inline-flex" >
< div > < a href = "../wait-release.html" > < span > wait< / span > < wbr > < / wbr > < span > < span > Release< / span > < / span > < / a > < / div >
< span class = "anchor-wrapper" > < span class = "anchor-icon" pointing-to = "965013650%2FFunctions%2F-1478683138" > < / span >
< div class = "copy-popup-wrapper " > < span class = "copy-popup-icon" > < / span > < span > Link copied to clipboard< / span > < / div >
< / span > < / span > < / div >
< div >
< div class = "title" >
< div class = "platform-hinted " data-platform-hinted = "data-platform-hinted" > < div class = "content sourceset-dependent-content" data-active = "" data-togglable = ":micro_utils.dokka:dokkaHtml/commonMain" > < div class = "symbol monospace" > < span class = "token keyword" > suspend < / span > < span class = "token keyword" > fun < / span > < a href = "index.html" > SmartSemaphore< / a > < span class = "token punctuation" > .< / span > < a href = "../wait-release.html" > < span class = "token function" > waitRelease< / span > < / a > < span class = "token punctuation" > (< / span > < span class = "parameters " > < span class = "parameter " > permits< span class = "token operator" > : < / span > < a href = "https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html" > Int< / a > < span class = "token operator" > = < / span > < span class = "token constant" > 1< / span > < / span > < / span > < span class = "token punctuation" > )< / span > < span class = "token operator" > : < / span > < a href = "https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html" > Int< / a > < / div > < div class = "brief " > < p class = "paragraph" > Will wait until the < a href = "permits-state-flow.html" > SmartSemaphore.permitsStateFlow< / a > of < span data-unresolved-link = "dev.inmo.micro_utils.coroutines//&lt;this&gt;/#/PointingToCallableParameters(-1)/" > this< / span > instance will have < a href = "../wait-release.html" > permits< / a > count free permits.< / p > < / div > < / div > < / div >
< / div >
< / div >
< / div >
< / div >
< / div >
< / div >
< / div >
< / div >
< / div >
< div class = "footer" >
< span class = "go-to-top-icon" > < a href = "#content" id = "go-to-top-link" > < / a > < / span > < span > © 2023 Copyright< / span > < span
class="pull-right">< span > Generated by < / span > < a
href="https://github.com/Kotlin/dokka">< span > dokka< / span > < span class = "padded-icon" > < / span > < / a > < / span >
< / div >
2023-09-01 22:34:58 +00:00
< / div >
< / div >
2023-08-12 17:03:29 +00:00
< / div >
< / body >
< / html >