(n)
| 113 | |
| 114 | |
| 115 | def _release(n): |
| 116 | global _mytokens, _cheats |
| 117 | assert n >= 0 |
| 118 | assert _mytokens >= n |
| 119 | _debug('%d,%d -> release(%d)\n' % (_mytokens, _cheats, n)) |
| 120 | n_to_share = 0 |
| 121 | for _ in xrange(n): |
| 122 | _mytokens -= 1 |
| 123 | if _cheats > 0: |
| 124 | _cheats -= 1 |
| 125 | else: |
| 126 | n_to_share += 1 |
| 127 | assert _mytokens >= 0 |
| 128 | assert _cheats >= 0 |
| 129 | if n_to_share: |
| 130 | _debug('PUT tokenfds %d\n' % n_to_share) |
| 131 | os.write(_tokenfds[1], 't' * n_to_share) |
| 132 | |
| 133 | |
| 134 | def _release_except_mine(): |
no test coverage detected