# Source: https://hg.python.org/cpython/file/2.7/Lib/mutex.py

from collections import deque
from typing import Any, Callable, TypeVar

_ArgType = TypeVar('_ArgType')

class mutex:
    locked = ...  # type: bool
    queue = ...  # type: deque
    def __init__(self) -> None: ...
    def test(self) -> bool: ...
    def testandset(self) -> bool: ...
    def lock(self, function: Callable[[_ArgType], Any], argument: _ArgType) -> None: ...
    def unlock(self) -> None: ...
