More bugfixes. Exported current_loop() and current_task()

This commit is contained in:
Mattia Giambirtone 2023-05-18 22:21:04 +02:00
parent 2459a7ea00
commit 6ceaec6a99
Signed by: nocturn9x
GPG Key ID: 8270F9F467971E59
3 changed files with 5 additions and 5 deletions

View File

@ -13,6 +13,7 @@ from structio.sync import Event, Queue, MemoryChannel, Semaphore, Lock, RLock
from structio.abc import Channel, Stream, ChannelReader, ChannelWriter
from structio import thread
from structio.io.files import open_file, wrap_file, aprint, stdout, stderr, stdin, ainput
from structio.core.run import current_loop, current_task
def run(func: Callable[[Any, Any], Coroutine[Any, Any, Any]],
@ -119,5 +120,7 @@ __all__ = ["run",
"stderr",
"stdin",
"stdout",
"ainput"
"ainput",
"current_loop",
"current_task"
]

View File

@ -138,7 +138,6 @@ class FIFOKernel(BaseKernel):
def reschedule(self, task: Task):
if task.done():
return
#print(__import__("inspect").stack()[1].function)
self.run_queue.append(task)
def check_cancelled(self):
@ -344,7 +343,7 @@ class FIFOKernel(BaseKernel):
self.current_pool = pool
def close_pool(self, pool: TaskPool):
self.current_pool = self.current_pool.outer
self.current_pool = pool.outer
def suspend(self):
self.current_task.state = TaskState.PAUSED

View File

@ -50,7 +50,6 @@ def run(func: Callable[[Any, Any], Coroutine[Any, Any, Any]],
if not issubclass(kernel, BaseKernel):
raise TypeError(f"kernel must be a subclass of structio.core.abc.BaseKernel!")
params = []
check = func
if isinstance(func, functools.partial):
check = func.func
@ -61,7 +60,6 @@ def run(func: Callable[[Any, Any], Coroutine[Any, Any, Any]],
)
elif not inspect.iscoroutinefunction(check):
raise StructIOException("structio.run() requires an async function as its first argument!")
params.extend(args)
new_event_loop(kernel(clock=clock, restrict_ki_to_checkpoints=restrict_ki_to_checkpoints,
io_manager=io_manager, signal_managers=signal_managers,
tools=tools))