230 lines
6.0 KiB
Cython
230 lines
6.0 KiB
Cython
# cython: language_level=3
|
|
|
|
|
|
from .includes cimport uv
|
|
from .includes cimport system
|
|
|
|
from libc.stdint cimport uint64_t, uint32_t, int64_t
|
|
|
|
|
|
include "includes/consts.pxi"
|
|
|
|
|
|
cdef extern from *:
|
|
ctypedef int vint "volatile int"
|
|
|
|
|
|
cdef class UVHandle
|
|
cdef class UVSocketHandle(UVHandle)
|
|
|
|
cdef class UVAsync(UVHandle)
|
|
cdef class UVTimer(UVHandle)
|
|
cdef class UVIdle(UVHandle)
|
|
|
|
cdef class UVBaseTransport(UVSocketHandle)
|
|
|
|
ctypedef object (*method_t)(object)
|
|
ctypedef object (*method1_t)(object, object)
|
|
ctypedef object (*method2_t)(object, object, object)
|
|
ctypedef object (*method3_t)(object, object, object, object)
|
|
|
|
|
|
cdef class Loop:
|
|
cdef:
|
|
uv.uv_loop_t *uvloop
|
|
|
|
bint _coroutine_debug_set
|
|
int _coroutine_origin_tracking_saved_depth
|
|
|
|
public slow_callback_duration
|
|
|
|
readonly bint _closed
|
|
bint _debug
|
|
bint _running
|
|
bint _stopping
|
|
|
|
uint64_t _thread_id
|
|
|
|
object _task_factory
|
|
object _exception_handler
|
|
object _default_executor
|
|
object _ready
|
|
set _queued_streams, _executing_streams
|
|
Py_ssize_t _ready_len
|
|
|
|
set _servers
|
|
|
|
object _transports
|
|
set _processes
|
|
dict _fd_to_reader_fileobj
|
|
dict _fd_to_writer_fileobj
|
|
|
|
set _signals
|
|
dict _signal_handlers
|
|
object _ssock
|
|
object _csock
|
|
bint _listening_signals
|
|
int _old_signal_wakeup_id
|
|
|
|
set _timers
|
|
dict _polls
|
|
|
|
UVProcess active_process_handler
|
|
|
|
UVAsync handler_async
|
|
UVIdle handler_idle
|
|
UVCheck handler_check__exec_writes
|
|
|
|
object _last_error
|
|
|
|
cdef object __weakref__
|
|
|
|
object _asyncgens
|
|
bint _asyncgens_shutdown_called
|
|
|
|
bint _executor_shutdown_called
|
|
|
|
char _recv_buffer[UV_STREAM_RECV_BUF_SIZE]
|
|
bint _recv_buffer_in_use
|
|
|
|
# DEBUG fields
|
|
# True when compiled with DEBUG.
|
|
# Used only in unittests.
|
|
readonly bint _debug_cc
|
|
|
|
readonly object _debug_handles_total
|
|
readonly object _debug_handles_closed
|
|
readonly object _debug_handles_current
|
|
|
|
readonly uint64_t _debug_uv_handles_total
|
|
readonly uint64_t _debug_uv_handles_freed
|
|
|
|
readonly uint64_t _debug_cb_handles_total
|
|
readonly uint64_t _debug_cb_handles_count
|
|
readonly uint64_t _debug_cb_timer_handles_total
|
|
readonly uint64_t _debug_cb_timer_handles_count
|
|
|
|
readonly uint64_t _debug_stream_shutdown_errors_total
|
|
readonly uint64_t _debug_stream_listen_errors_total
|
|
|
|
readonly uint64_t _debug_stream_read_cb_total
|
|
readonly uint64_t _debug_stream_read_cb_errors_total
|
|
readonly uint64_t _debug_stream_read_eof_total
|
|
readonly uint64_t _debug_stream_read_eof_cb_errors_total
|
|
readonly uint64_t _debug_stream_read_errors_total
|
|
|
|
readonly uint64_t _debug_stream_write_tries
|
|
readonly uint64_t _debug_stream_write_errors_total
|
|
readonly uint64_t _debug_stream_write_ctx_total
|
|
readonly uint64_t _debug_stream_write_ctx_cnt
|
|
readonly uint64_t _debug_stream_write_cb_errors_total
|
|
|
|
readonly uint64_t _poll_read_events_total
|
|
readonly uint64_t _poll_read_cb_errors_total
|
|
readonly uint64_t _poll_write_events_total
|
|
readonly uint64_t _poll_write_cb_errors_total
|
|
|
|
readonly uint64_t _sock_try_write_total
|
|
|
|
readonly uint64_t _debug_exception_handler_cnt
|
|
|
|
cdef _init_debug_fields(self)
|
|
|
|
cdef _on_wake(self)
|
|
cdef _on_idle(self)
|
|
|
|
cdef __run(self, uv.uv_run_mode)
|
|
cdef _run(self, uv.uv_run_mode)
|
|
|
|
cdef _close(self)
|
|
cdef _stop(self, exc)
|
|
cdef uint64_t _time(self)
|
|
|
|
cdef inline _queue_write(self, UVStream stream)
|
|
cdef _exec_queued_writes(self)
|
|
|
|
cdef inline _call_soon(self, object callback, object args, object context)
|
|
cdef inline _append_ready_handle(self, Handle handle)
|
|
cdef inline _call_soon_handle(self, Handle handle)
|
|
|
|
cdef _call_later(self, uint64_t delay, object callback, object args,
|
|
object context)
|
|
|
|
cdef void _handle_exception(self, object ex)
|
|
|
|
cdef inline _is_main_thread(self)
|
|
|
|
cdef inline _new_future(self)
|
|
cdef inline _check_signal(self, sig)
|
|
cdef inline _check_closed(self)
|
|
cdef inline _check_thread(self)
|
|
|
|
cdef _getaddrinfo(self, object host, object port,
|
|
int family, int type,
|
|
int proto, int flags,
|
|
int unpack)
|
|
|
|
cdef _getnameinfo(self, system.sockaddr *addr, int flags)
|
|
|
|
cdef _track_transport(self, UVBaseTransport transport)
|
|
cdef _fileobj_to_fd(self, fileobj)
|
|
cdef _ensure_fd_no_transport(self, fd)
|
|
|
|
cdef _track_process(self, UVProcess proc)
|
|
cdef _untrack_process(self, UVProcess proc)
|
|
|
|
cdef _add_reader(self, fd, Handle handle)
|
|
cdef _has_reader(self, fd)
|
|
cdef _remove_reader(self, fd)
|
|
|
|
cdef _add_writer(self, fd, Handle handle)
|
|
cdef _has_writer(self, fd)
|
|
cdef _remove_writer(self, fd)
|
|
|
|
cdef _sock_recv(self, fut, sock, n)
|
|
cdef _sock_recv_into(self, fut, sock, buf)
|
|
cdef _sock_sendall(self, fut, sock, data)
|
|
cdef _sock_accept(self, fut, sock)
|
|
|
|
cdef _sock_connect(self, sock, address)
|
|
cdef _sock_connect_cb(self, fut, sock, address)
|
|
|
|
cdef _sock_set_reuseport(self, int fd)
|
|
|
|
cdef _setup_or_resume_signals(self)
|
|
cdef _shutdown_signals(self)
|
|
cdef _pause_signals(self)
|
|
|
|
cdef _handle_signal(self, sig)
|
|
cdef _read_from_self(self)
|
|
cdef inline _ceval_process_signals(self)
|
|
cdef _invoke_signals(self, bytes data)
|
|
|
|
cdef _set_coroutine_debug(self, bint enabled)
|
|
|
|
cdef _print_debug_info(self)
|
|
|
|
|
|
include "cbhandles.pxd"
|
|
|
|
include "handles/handle.pxd"
|
|
include "handles/async_.pxd"
|
|
include "handles/idle.pxd"
|
|
include "handles/check.pxd"
|
|
include "handles/timer.pxd"
|
|
include "handles/poll.pxd"
|
|
include "handles/basetransport.pxd"
|
|
include "handles/stream.pxd"
|
|
include "handles/streamserver.pxd"
|
|
include "handles/tcp.pxd"
|
|
include "handles/pipe.pxd"
|
|
include "handles/process.pxd"
|
|
include "handles/fsevent.pxd"
|
|
|
|
include "request.pxd"
|
|
include "sslproto.pxd"
|
|
|
|
include "handles/udp.pxd"
|
|
|
|
include "server.pxd"
|