1.0.4 • Published 2 years ago

nv-facutil-simple-sema v1.0.4

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

nv-facutil-simple-sema

  • simple promise sema

install

  • npm install nv-facutil-simple-sema

usage

  const {Simple,Full} = require("nv-facutil-simple-sema")

example

###simple

        var sema = new Simple(3)
        var o0 = sema.acquire()
        var o1 = sema.acquire()
        var o2 = sema.acquire()
        > o0
        true
        > o1
        true
        > o2
        true
        > sema.used_
        3
        > sema.lefted_
        0
        > sema.max_
        3
        >
        > var o3 = sema.acquire()
        > o3
        Promise { <pending> }
        > sema.used_
        3
        > sema.pending_
        1
        >

        > sema.release()
        > o3
        Promise { true }
        >
        > sema.pending_
        0
        > sema.release()
        undefined
        > sema.used_
        2
        > sema.acquire()
        true
        >
        > sema.used_
        3
        >

###full

  var sema = new Full(3)
  > var id0 = sema.acquire()
  undefined
  > id0
  'CIl6HY1LRBDXrJSSWd0zTAkQkgkrxiYh0jcClrNUB5EIbWwifbtFv_FeUYaRa9zD'
  > sema.used_
  1
  > var id1 = sema.acquire()
  undefined
  > sema.used_
  2
  > sema.lefted_
  1
  >
  > var id2 = sema.acquire()
  undefined
  > id2
  'VKRyk71Ko1AMdN19k_I5bGgfmvbims9ScULaZWpjjHuTlc_P1jGmLXO2oKR3Ecdx'
  >
  > var id3 = sema.acquire()
  undefined
  > id3
  Promise { <pending> }
  >
  > var id4 = sema.acquire()
  undefined
  > id4
  Promise { <pending> }
  >
  > sema.pending_
  2
  > sema.used_
  3

  sema.release(id2)
  > id3
  Promise {
    'u857DdZ_W5E22AeHImpOFZLMzU9X1h2RKVZQXzFjZWIxwJGV24N0nmxIPNm-EKvu'
  }
  > id4
  Promise { <pending> }
  > sema.used_
  3
  > sema.pending_
  1
  > sema.release(id1)

  > id4
  Promise {
    'pPELrvX5QH3FioHWGu565NEm7v_budec-GbIPLwu8C7Y87UnClT1U5_bDDZKrADZ'
  }

  > id0
  'O2MkWKcwkCujilS8z-i34PiW5jwAXaHTE6cukQ7WS95juJiNXpETowgB0j2lYaTm'


  > sema.is_inuse(id0)
  true
  > sema.begin_at(id0)
  2021-12-02T03:53:49.809Z
  > sema.duration(id0)
  78161
  > sema.duration(id0)
  80545
  >

METHODS

###simple

  • sema.acquire()
  • sema.release()
  • sema.max_
  • sema.lefted_
  • sema.used_
  • sema.pending_

###full

  • sema.acquire(tmout,set_tmout=setTimeout):Promise|Char64Id
  • sema.release(id)
  • sema.begin_at(id):MS
  • sema.duration(id):MS
  • sema.is_inuse(id):Boolean
  • sema.is_pending(id):Boolean
  • sema.max_
  • sema.used_
  • sema.lefted_
  • sema.pending_

APIS

LICENSE

  • ISC