晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
| DIR:/opt/alt/python312/include/python3.12/internal/ |
| Current File : //opt/alt/python312/include/python3.12/internal/pycore_signal.h |
// Define Py_NSIG constant for signal handling.
#ifndef Py_INTERNAL_SIGNAL_H
#define Py_INTERNAL_SIGNAL_H
#ifdef __cplusplus
extern "C" {
#endif
#ifndef Py_BUILD_CORE
# error "this header requires Py_BUILD_CORE define"
#endif
#include "pycore_atomic.h" // _Py_atomic_address
#include <signal.h> // NSIG
#ifdef _SIG_MAXSIG
// gh-91145: On FreeBSD, <signal.h> defines NSIG as 32: it doesn't include
// realtime signals: [SIGRTMIN,SIGRTMAX]. Use _SIG_MAXSIG instead. For
// example on x86-64 FreeBSD 13, SIGRTMAX is 126 and _SIG_MAXSIG is 128.
# define Py_NSIG _SIG_MAXSIG
#elif defined(NSIG)
# define Py_NSIG NSIG
#elif defined(_NSIG)
# define Py_NSIG _NSIG // BSD/SysV
#elif defined(_SIGMAX)
# define Py_NSIG (_SIGMAX + 1) // QNX
#elif defined(SIGMAX)
# define Py_NSIG (SIGMAX + 1) // djgpp
#else
# define Py_NSIG 64 // Use a reasonable default value
#endif
#define INVALID_FD (-1)
struct _signals_runtime_state {
volatile struct {
_Py_atomic_int tripped;
/* func is atomic to ensure that PyErr_SetInterrupt is async-signal-safe
* (even though it would probably be otherwise, anyway).
*/
_Py_atomic_address func;
} handlers[Py_NSIG];
volatile struct {
#ifdef MS_WINDOWS
/* This would be "SOCKET fd" if <winsock2.h> were always included.
It isn't so we must cast to SOCKET where appropriate. */
volatile int fd;
#elif defined(__VXWORKS__)
int fd;
#else
sig_atomic_t fd;
#endif
int warn_on_full_buffer;
#ifdef MS_WINDOWS
int use_send;
#endif
} wakeup;
/* Speed up sigcheck() when none tripped */
_Py_atomic_int is_tripped;
/* These objects necessarily belong to the main interpreter. */
PyObject *default_handler;
PyObject *ignore_handler;
#ifdef MS_WINDOWS
/* This would be "HANDLE sigint_event" if <windows.h> were always included.
It isn't so we must cast to HANDLE everywhere "sigint_event" is used. */
void *sigint_event;
#endif
/* True if the main interpreter thread exited due to an unhandled
* KeyboardInterrupt exception, suggesting the user pressed ^C. */
int unhandled_keyboard_interrupt;
};
#ifdef MS_WINDOWS
# define _signals_WAKEUP_INIT \
{.fd = INVALID_FD, .warn_on_full_buffer = 1, .use_send = 0}
#else
# define _signals_WAKEUP_INIT \
{.fd = INVALID_FD, .warn_on_full_buffer = 1}
#endif
#define _signals_RUNTIME_INIT \
{ \
.wakeup = _signals_WAKEUP_INIT, \
}
#ifdef __cplusplus
}
#endif
#endif // !Py_INTERNAL_SIGNAL_H
|