亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? apr_thread_proc.h

?? Apache_2.0.59-Openssl_0.9 配置tomcat. Apache_2.0.59-Openssl_0.9 配置tomcat.
?? H
?? 第 1 頁 / 共 3 頁
字號:

#if APR_HAS_FORK
/**
 * This is currently the only non-portable call in APR.  This executes 
 * a standard unix fork.
 * @param proc The resulting process handle. 
 * @param cont The pool to use. 
 */
APR_DECLARE(apr_status_t) apr_proc_fork(apr_proc_t *proc, apr_pool_t *cont);
#endif

/**
 * Create a new process and execute a new program within that process.
 * @param new_proc The resulting process handle.
 * @param progname The program to run 
 * @param args the arguments to pass to the new program.  The first 
 *             one should be the program name.
 * @param env The new environment table for the new process.  This 
 *            should be a list of NULL-terminated strings. This argument
 *            is ignored for APR_PROGRAM_ENV, APR_PROGRAM_PATH, and
 *            APR_SHELLCMD_ENV types of commands.
 * @param attr the procattr we should use to determine how to create the new
 *         process
 * @param cont The pool to use. 
 */
APR_DECLARE(apr_status_t) apr_proc_create(apr_proc_t *new_proc,
                                             const char *progname,
                                             const char * const *args,
                                             const char * const *env, 
                                             apr_procattr_t *attr, 
                                             apr_pool_t *cont);

/**
 * Wait for a child process to die
 * @param proc The process handle that corresponds to the desired child process 
 * @param exitcode The returned exit status of the child, if a child process 
 *                 dies, or the signal that caused the child to die.
 *                 On platforms that don't support obtaining this information, 
 *                 the status parameter will be returned as APR_ENOTIMPL.
 * @param exitwhy Why the child died, the bitwise or of:
 * <PRE>
 *            APR_PROC_EXIT         -- process terminated normally
 *            APR_PROC_SIGNAL       -- process was killed by a signal
 *            APR_PROC_SIGNAL_CORE  -- process was killed by a signal, and
 *                                     generated a core dump.
 * </PRE>
 * @param waithow How should we wait.  One of:
 * <PRE>
 *            APR_WAIT   -- block until the child process dies.
 *            APR_NOWAIT -- return immediately regardless of if the 
 *                          child is dead or not.
 * </PRE>
 * @remark The childs status is in the return code to this process.  It is one of:
 * <PRE>
 *            APR_CHILD_DONE     -- child is no longer running.
 *            APR_CHILD_NOTDONE  -- child is still running.
 * </PRE>
 */
APR_DECLARE(apr_status_t) apr_proc_wait(apr_proc_t *proc,
                                        int *exitcode, apr_exit_why_e *exitwhy,
                                        apr_wait_how_e waithow);

/**
 * Wait for any current child process to die and return information 
 * about that child.
 * @param proc Pointer to NULL on entry, will be filled out with child's 
 *             information 
 * @param exitcode The returned exit status of the child, if a child process 
 *                 dies, or the signal that caused the child to die.
 *                 On platforms that don't support obtaining this information, 
 *                 the status parameter will be returned as APR_ENOTIMPL.
 * @param exitwhy Why the child died, the bitwise or of:
 * <PRE>
 *            APR_PROC_EXIT         -- process terminated normally
 *            APR_PROC_SIGNAL       -- process was killed by a signal
 *            APR_PROC_SIGNAL_CORE  -- process was killed by a signal, and
 *                                     generated a core dump.
 * </PRE>
 * @param waithow How should we wait.  One of:
 * <PRE>
 *            APR_WAIT   -- block until the child process dies.
 *            APR_NOWAIT -- return immediately regardless of if the 
 *                          child is dead or not.
 * </PRE>
 * @param p Pool to allocate child information out of.
 * @bug Passing proc as a *proc rather than **proc was an odd choice
 * for some platforms... this should be revisited in 1.0
 */
APR_DECLARE(apr_status_t) apr_proc_wait_all_procs(apr_proc_t *proc,
                                                  int *exitcode,
                                                  apr_exit_why_e *exitwhy,
                                                  apr_wait_how_e waithow,
                                                  apr_pool_t *p);

#define APR_PROC_DETACH_FOREGROUND 0    /**< Do not detach */
#define APR_PROC_DETACH_DAEMONIZE 1     /**< Detach */

/**
 * Detach the process from the controlling terminal.
 * @param daemonize set to non-zero if the process should daemonize
 *                  and become a background process, else it will
 *                  stay in the foreground.
 */
APR_DECLARE(apr_status_t) apr_proc_detach(int daemonize);

/**
 * Register an other_child -- a child associated to its registered 
 * maintence callback.  This callback is invoked when the process
 * dies, is disconnected or disappears.
 * @param proc The child process to register.
 * @param maintenance maintenance is a function that is invoked with a 
 *                    reason and the data pointer passed here.
 * @param data Opaque context data passed to the maintenance function.
 * @param write_fd An fd that is probed for writing.  If it is ever unwritable
 *                 then the maintenance is invoked with reason 
 *                 OC_REASON_UNWRITABLE.
 * @param p The pool to use for allocating memory.
 * @bug write_fd duplicates the proc->out stream, it's really redundant
 * and should be replaced in the APR 1.0 API with a bitflag of which
 * proc->in/out/err handles should be health checked.
 * @bug no platform currently tests the pipes health.
 */
APR_DECLARE(void) apr_proc_other_child_register(apr_proc_t *proc, 
                                           void (*maintenance) (int reason, 
                                                                void *, 
                                                                int status),
                                           void *data, apr_file_t *write_fd,
                                           apr_pool_t *p);

/**
 * Stop watching the specified other child.  
 * @param data The data to pass to the maintenance function.  This is
 *             used to find the process to unregister.
 * @warning Since this can be called by a maintenance function while we're
 *          scanning the other_children list, all scanners should protect 
 *          themself by loading ocr->next before calling any maintenance 
 *          function.
 */
APR_DECLARE(void) apr_proc_other_child_unregister(void *data);

/**
 * Notify the maintenance callback of a registered other child process
 * that application has detected an event, such as death.
 * @param proc The process to check
 * @param reason The reason code to pass to the maintenance function
 * @param status The status to pass to the maintenance function
 * @remark An example of code using this behavior;
 * <pre>
 * rv = apr_proc_wait_all_procs(&proc, &exitcode, &status, APR_WAIT, p);
 * if (APR_STATUS_IS_CHILD_DONE(rv)) {
 * #if APR_HAS_OTHER_CHILD
 *     if (apr_proc_other_child_alert(&proc, APR_OC_REASON_DEATH, status)
 *             == APR_SUCCESS) {
 *         ;  (already handled)
 *     }
 *     else
 * #endif
 *         [... handling non-otherchild processes death ...]
 * </pre>
 */
APR_DECLARE(apr_status_t) apr_proc_other_child_alert(apr_proc_t *proc, 
                                                     int reason,
                                                     int status);

/**
 * Test one specific other child processes and invoke the maintenance callback 
 * with the appropriate reason code, if still running, or the appropriate reason 
 * code if the process is no longer healthy.
 * @param ocr The registered other child
 * @param reason The reason code (e.g. APR_OC_REASON_RESTART) if still running
 */
APR_DECLARE(void) apr_proc_other_child_refresh(apr_other_child_rec_t *ocr,
                                               int reason);

/**
 * Test all registered other child processes and invoke the maintenance callback 
 * with the appropriate reason code, if still running, or the appropriate reason 
 * code if the process is no longer healthy.
 * @param reason The reason code (e.g. APR_OC_REASON_RESTART) to running processes
 */
APR_DECLARE(void) apr_proc_other_child_refresh_all(int reason);

/** @deprecated @see apr_proc_other_child_refresh_all
 * @remark Call apr_proc_other_child_refresh_all(APR_OC_REASON_RESTART)
 * or apr_proc_other_child_refresh_all(APR_OC_REASON_RUNNING) instead.
 * @bug The differing implementations of this function on Win32 (_RUNNING checks) 
 * and Unix (used only for _RESTART) are the reason it will be dropped with APR 1.0.
 */
APR_DECLARE(void) apr_proc_other_child_check(void);

/** @deprecated @see apr_proc_other_child_alert
 * @bug This function's name had nothing to do with it's purpose
 */
APR_DECLARE(apr_status_t) apr_proc_other_child_read(apr_proc_t *proc, int status);


/** 
 * Terminate a process.
 * @param proc The process to terminate.
 * @param sig How to kill the process.
 */
APR_DECLARE(apr_status_t) apr_proc_kill(apr_proc_t *proc, int sig);

/**
 * Register a process to be killed when a pool dies.
 * @param a The pool to use to define the processes lifetime 
 * @param proc The process to register
 * @param how How to kill the process, one of:
 * <PRE>
 *         APR_KILL_NEVER         -- process is never sent any signals
 *         APR_KILL_ALWAYS        -- process is sent SIGKILL on apr_pool_t cleanup
 *         APR_KILL_AFTER_TIMEOUT -- SIGTERM, wait 3 seconds, SIGKILL
 *         APR_JUST_WAIT          -- wait forever for the process to complete
 *         APR_KILL_ONLY_ONCE     -- send SIGTERM and then wait
 * </PRE>
 */
APR_DECLARE(void) apr_pool_note_subprocess(apr_pool_t *a, apr_proc_t *proc,
                                           apr_kill_conditions_e how);

#if APR_HAS_THREADS 

#if (APR_HAVE_SIGWAIT || APR_HAVE_SIGSUSPEND) && !defined(OS2)

/**
 * Setup the process for a single thread to be used for all signal handling.
 * @warning This must be called before any threads are created
 */
APR_DECLARE(apr_status_t) apr_setup_signal_thread(void);

/**
 * Make the current thread listen for signals.  This thread will loop
 * forever, calling a provided function whenever it receives a signal.  That
 * functions should return 1 if the signal has been handled, 0 otherwise.
 * @param signal_handler The function to call when a signal is received
 * apr_status_t apr_signal_thread((int)(*signal_handler)(int signum))
 */
APR_DECLARE(apr_status_t) apr_signal_thread(int(*signal_handler)(int signum));

#endif /* (APR_HAVE_SIGWAIT || APR_HAVE_SIGSUSPEND) && !defined(OS2) */

/**
 * Get the child-pool used by the thread from the thread info.
 * @return apr_pool_t the pool
 */
APR_POOL_DECLARE_ACCESSOR(thread);

#endif /* APR_HAS_THREADS */

/** @} */

#ifdef __cplusplus
}
#endif

#endif  /* ! APR_THREAD_PROC_H */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产人成亚洲区| 欧美丰满高潮xxxx喷水动漫| 蜜臀av性久久久久蜜臀av麻豆 | 日韩国产欧美三级| 亚洲午夜激情av| 亚洲欧洲国产日本综合| 国产精品久久久久精k8 | 在线视频中文字幕一区二区| 91啪亚洲精品| 欧美日韩成人综合在线一区二区| 欧美中文字幕一区二区三区亚洲 | 日韩av午夜在线观看| 亚洲成av人片在www色猫咪| 天天影视网天天综合色在线播放| 亚洲成人一区二区在线观看| 日韩中文欧美在线| 九色porny丨国产精品| 国内精品久久久久影院薰衣草| 国产激情一区二区三区| 9久草视频在线视频精品| 色噜噜狠狠成人网p站| 欧美日韩一区二区三区免费看 | 成人永久免费视频| 91在线视频在线| 欧美精品在线一区二区| 精品国产91九色蝌蚪| 国产精品第13页| 日日摸夜夜添夜夜添国产精品 | 午夜国产精品一区| 老司机一区二区| 99久久免费精品高清特色大片| 在线观看91精品国产入口| 日韩三级高清在线| 亚洲三级电影全部在线观看高清| 亚洲主播在线播放| 精品中文字幕一区二区| 欧洲激情一区二区| 久久久影视传媒| 午夜影院在线观看欧美| 成人精品视频一区二区三区 | 亚洲国产精品国自产拍av| 亚洲国产成人porn| 大胆欧美人体老妇| 日韩一二三区视频| 一区二区三区免费观看| 国产精品99久久久久久久vr| 色久优优欧美色久优优| 久久精品亚洲一区二区三区浴池| 亚洲一区二区三区精品在线| 成人sese在线| 欧美精品一区二区三区一线天视频| 亚洲猫色日本管| 国产精品白丝jk白祙喷水网站 | 国产真实乱对白精彩久久| 国产夜色精品一区二区av| 一级精品视频在线观看宜春院| 国产91丝袜在线播放| 精品一区在线看| 欧美三级在线播放| 日韩美女啊v在线免费观看| 国产精品一级在线| 欧美一区二区三区视频在线观看| 亚洲欧美日本在线| 成人激情校园春色| 久久久久久日产精品| 久久精品国产精品亚洲精品| 日韩欧美一二三四区| 性感美女久久精品| 欧美久久久久免费| 亚洲福利视频一区二区| 欧美三级资源在线| 亚洲综合精品久久| 91久久精品一区二区二区| 亚洲精品欧美综合四区| 日本高清免费不卡视频| 1024成人网| 色哟哟一区二区在线观看| 中文字幕日韩一区| 色拍拍在线精品视频8848| 中文字幕日韩一区| 蜜芽一区二区三区| 精品入口麻豆88视频| 久久99精品视频| 欧美成人激情免费网| 国产在线国偷精品免费看| 久久久久久99久久久精品网站| 国产精品一区二区在线观看网站| 国产欧美一区视频| 国产成人精品在线看| 国产精品久久久久久福利一牛影视 | 蜜臀a∨国产成人精品| 亚洲精品一区二区三区蜜桃下载 | 91丨porny丨首页| 91麻豆国产精品久久| 精品国产1区2区3区| 国产日韩欧美精品一区| 精品久久国产字幕高潮| 国产欧美一区二区三区鸳鸯浴 | 日韩亚洲欧美中文三级| 亚洲色图一区二区| 欧美视频自拍偷拍| 蜜桃视频在线观看一区二区| 久久只精品国产| jlzzjlzz欧美大全| 亚洲午夜久久久久久久久电影网 | 亚洲一卡二卡三卡四卡五卡| 欧美人成免费网站| 国产一二三精品| 亚洲欧美日韩综合aⅴ视频| 欧美日韩一级大片网址| 国内精品在线播放| 亚洲精品成人天堂一二三| 欧美一区二区二区| 99视频一区二区三区| 性感美女极品91精品| 26uuu国产日韩综合| 色哟哟精品一区| 国产一区二区视频在线| 亚洲一区二区三区三| 国产日韩成人精品| 337p亚洲精品色噜噜噜| 91免费观看在线| 国产一区久久久| 午夜国产精品影院在线观看| 亚洲欧洲av另类| 国产亚洲成年网址在线观看| 欧美视频在线播放| 91亚洲精品乱码久久久久久蜜桃| 精品一区二区三区久久久| 亚洲成人av在线电影| 国产精品福利电影一区二区三区四区| 欧美一卡二卡在线观看| 在线看不卡av| 国产美女一区二区| 天堂va蜜桃一区二区三区漫画版| 综合久久久久久久| 国产精品久久精品日日| 久久美女艺术照精彩视频福利播放| 99久久久精品| www.色精品| 成人app在线| 风流少妇一区二区| 国产麻豆成人传媒免费观看| 美女视频第一区二区三区免费观看网站| 亚洲天堂网中文字| 亚洲三级在线看| 亚洲男同1069视频| 亚洲日本va午夜在线影院| 久久精品亚洲国产奇米99| 精品久久久久久久久久久久包黑料 | 日韩欧美一级二级| 91精品国产品国语在线不卡| 欧美日本在线一区| 91精品国产综合久久久久久久久久| 欧美性淫爽ww久久久久无| 91福利在线导航| 欧美午夜在线一二页| 欧美三级中文字| 欧美久久婷婷综合色| 欧美va天堂va视频va在线| 久久先锋影音av| 中文字幕免费在线观看视频一区| 中文字幕日韩一区二区| 亚洲国产一二三| 免费观看久久久4p| 韩国一区二区视频| 成人国产精品视频| 91成人网在线| 日韩欧美高清一区| 国产精品视频免费| 亚洲午夜精品网| 久久精品国产99国产精品| 国产精品一区一区| 在线精品视频免费播放| 91麻豆精品久久久久蜜臀 | 国产精品你懂的| 亚洲免费伊人电影| 亚洲成人av中文| 麻豆成人91精品二区三区| 成人综合在线网站| 欧美午夜精品电影| 2023国产精品| 亚洲综合丝袜美腿| 日本不卡123| 91蜜桃视频在线| 91精品在线一区二区| 中文字幕乱码一区二区免费| 一区二区在线看| 国产综合色视频| 在线观看成人免费视频| 久久新电视剧免费观看| 亚洲影院久久精品| 丰满岳乱妇一区二区三区| 欧美精选午夜久久久乱码6080| 亚洲精品日韩专区silk| 久久国产视频网| 日本高清无吗v一区| 亚洲国产精品精华液2区45| 日本在线不卡视频一二三区| 成人福利视频在线|