| 128 | # |
| 129 | |
| 130 | class Semaphore(SemLock): |
| 131 | |
| 132 | def __init__(self, value=1, *, ctx): |
| 133 | SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX, ctx=ctx) |
| 134 | |
| 135 | def get_value(self): |
| 136 | return self._semlock._get_value() |
| 137 | |
| 138 | def __repr__(self): |
| 139 | try: |
| 140 | value = self._semlock._get_value() |
| 141 | except Exception: |
| 142 | value = 'unknown' |
| 143 | return '<%s(value=%s)>' % (self.__class__.__name__, value) |
| 144 | |
| 145 | # |
| 146 | # Bounded semaphore |