GNU libmicrohttpd 0.9.77
|
implementation of MHD_request_resume() More...
Go to the source code of this file.
Functions | |
void | MHD_request_resume (struct MHD_Request *request) |
bool | MHD_resume_suspended_connections_ (struct MHD_Daemon *daemon) |
implementation of MHD_request_resume()
Definition in file request_resume.c.
void MHD_request_resume | ( | struct MHD_Request * | request | ) |
Resume handling of network data for suspended request. It is safe to resume a suspended request at any time. Calling this function on a request that was not previously suspended will result in undefined behavior.
If you are using this function in `‘external’' select mode, you must make sure to run MHD_run() afterwards (before again calling MHD_get_fdset(), as otherwise the change may not be reflected in the set returned by MHD_get_fdset() and you may end up with a request that is stuck until the next network activity.
request | the request to resume |
Definition at line 43 of file request_resume.c.
References _, MHD_Daemon::cleanup_connection_mutex, MHD_Request::connection, MHD_Request::daemon, MHD_Daemon::disallow_suspend_resume, MHD_Daemon::itc, MHD_mutex_lock_chk_, MHD_mutex_unlock_chk_, MHD_PANIC, MHD_Connection::resuming, and MHD_Daemon::resuming.
Referenced by internal_run_from_select(), MHD_daemon_close_all_connections_(), and thread_main_handle_connection().
bool MHD_resume_suspended_connections_ | ( | struct MHD_Daemon * | daemon | ) |
Run through the suspended connections and move any that are no longer suspended back to the active state.
daemon | daemon context |
Definition at line 79 of file request_resume.c.
References _, MHD_Daemon::cleanup_connection_mutex, MHD_Daemon::cleanup_head, MHD_Daemon::cleanup_tail, MHD_Request::client_context, MHD_Daemon::connection_default_timeout, MHD_Connection::connection_timeout, MHD_Daemon::connections_head, MHD_Daemon::connections_tail, MHD_Connection::daemon, DLL_insert, DLL_remove, EDLL_insert, MHD_Daemon::event_loop_syscall, MHD_Daemon::itc, MHD_Connection::last_activity, MHD_Daemon::manual_timeout_head, MHD_Daemon::manual_timeout_tail, mhd_assert, MHD_EPOLL_STATE_IN_EREADY_EDLL, MHD_EPOLL_STATE_READ_READY, MHD_EPOLL_STATE_WRITE_READY, MHD_monotonic_sec_counter(), MHD_mutex_lock_chk_, MHD_mutex_unlock_chk_, MHD_PANIC, MHD_REQUEST_TERMINATED_COMPLETED_OK, MHD_Daemon::normal_timeout_head, MHD_Daemon::normal_timeout_tail, NULL, MHD_Connection::prev, MHD_Connection::request, MHD_Request::response, MHD_Connection::resuming, MHD_Daemon::resuming, MHD_Daemon::shutdown, MHD_Connection::suspended, MHD_Daemon::suspended_connections_head, MHD_Daemon::suspended_connections_tail, MHD_Response::termination_cb, MHD_Response::termination_cb_cls, MHD_Daemon::threading_mode, MHD_Daemon::worker_pool, and XDLL_insert.
Referenced by MHD_daemon_close_all_connections_(), MHD_daemon_run_from_select(), MHD_daemon_select_(), and MHD_polling_thread().