将 .py 和 .pyi 后缀名改为了 .vp 和 .vpi 后缀名

This commit is contained in:
2026-07-30 16:33:56 +08:00
parent f79c8ca643
commit cfc30d735c
322 changed files with 246 additions and 31772 deletions

38
includes/lock.vp Normal file
View File

@@ -0,0 +1,38 @@
import t, c
from stdint import *
from w32.win32base import *
from w32.win32sync import CRITICAL_SECTION, InitializeCriticalSection, EnterCriticalSection, LeaveCriticalSection, DeleteCriticalSection, TryEnterCriticalSection
class Lock:
"""Mutex built on CRITICAL_SECTION, supports recursive locking.
Usage:
lock: Lock = Lock()
with lock:
# Critical section
pass
"""
cs: CRITICAL_SECTION
def __init__(self):
InitializeCriticalSection(c.Addr(self.cs))
def acquire(self):
EnterCriticalSection(c.Addr(self.cs))
def release(self):
LeaveCriticalSection(c.Addr(self.cs))
def try_acquire(self) -> BOOL:
return TryEnterCriticalSection(c.Addr(self.cs))
def __enter__(self) -> 'Lock' | t.CPtr:
self.acquire()
return self
def __exit__(self):
self.release()
def delete(self):
DeleteCriticalSection(c.Addr(self.cs))