1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/talent518-threadtask

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
func.h 4.2 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
阿宝 Отправлено 3 лет назад 4bbd2b8
#ifndef _FUNC_H
#define _FUNC_H
#include <php.h>
struct pthread_fake {
void *nothing[90];
pid_t tid;
pid_t pid;
};
#define pthread_tid_ex(t) ((struct pthread_fake*) t)->tid
#define pthread_tid pthread_tid_ex(pthread_self())
#define dprintf(fmt, args...) if(UNEXPECTED(isDebug)) {fprintf(stderr, "[%s] [TID:%d] " fmt, gettimeofstr(), pthread_tid, ##args);fflush(stderr);}
extern zend_module_entry threadtask_module_entry;
extern volatile unsigned int maxthreads;
extern volatile unsigned int delay;
extern volatile zend_bool isDebug;
extern volatile zend_bool isReload;
double microtime();
int strnatcmp(char const *a, size_t a_len, char const *b, size_t b_len, int fold_case);
void debug_print_backtrace(const char *prefix, int skip_last, int options, int limit);
void thread_init();
void thread_running();
void thread_sigmask();
void thread_destroy();
const char *gettimeofstr();
extern size_t (*old_ub_write_handler)(const char *str, size_t str_length);
extern void (*old_flush_handler)(void *server_context);
size_t php_thread_ub_write_handler(const char *str, size_t str_length);
void php_thread_flush_handler(void *server_context);
void socket_import_fd(int fd, zval *return_value);
#if PHP_VERSION_ID < 70400
void zend_stream_init_filename(zend_file_handle *file_handle, const char *script_file);
#endif
#ifndef Z_PARAM_RESOURCE_OR_NULL
#define Z_PARAM_RESOURCE_OR_NULL(dest) \
Z_PARAM_RESOURCE_EX(dest, 1, 0)
#endif
#ifndef Z_PARAM_ZVAL_DEREF
#define Z_PARAM_ZVAL_DEREF(dest) Z_PARAM_ZVAL_EX2(dest, 0, 1, 0)
#endif
#ifndef Z_PARAM_STR_OR_LONG_EX
#if PHP_VERSION_ID >= 70400
#define ERROR_CODE _error_code
#else
#define ERROR_CODE error_code
#endif
#define Z_PARAM_STR_OR_LONG_EX(dest_str, dest_long, is_null, allow_null) \
Z_PARAM_PROLOGUE(0, 0); \
if (UNEXPECTED(!zend_parse_arg_str_or_long(_arg, &dest_str, &dest_long, &is_null, allow_null))) { \
_expected_type = Z_EXPECTED_STRING; \
ERROR_CODE = ZPP_ERROR_WRONG_ARG; \
break; \
}
#define Z_PARAM_STR_OR_LONG(dest_str, dest_long) \
Z_PARAM_STR_OR_LONG_EX(dest_str, dest_long, _dummy, 0);
#define Z_PARAM_STR_OR_LONG_OR_NULL(dest_str, dest_long, is_null) \
Z_PARAM_STR_OR_LONG_EX(dest_str, dest_long, is_null, 1);
static zend_always_inline int zend_parse_arg_str_or_long(zval *arg, zend_string **dest_str, zend_long *dest_long,
zend_bool *is_null, int allow_null)
{
if (allow_null) {
*is_null = 0;
}
if (EXPECTED(Z_TYPE_P(arg) == IS_STRING)) {
*dest_str = Z_STR_P(arg);
return 1;
} else if (EXPECTED(Z_TYPE_P(arg) == IS_LONG)) {
*dest_str = NULL;
*dest_long = Z_LVAL_P(arg);
return 1;
} else if (allow_null && EXPECTED(Z_TYPE_P(arg) == IS_NULL)) {
*dest_str = NULL;
*is_null = 1;
return 1;
} else {
if (zend_parse_arg_long_weak(arg, dest_long)) {
*dest_str = NULL;
return 1;
} else if (zend_parse_arg_str_weak(arg, dest_str)) {
*dest_long = 0;
return 1;
} else {
return 0;
}
}
}
#endif
#ifndef ZEND_PARSE_PARAMETERS_NONE
#define ZEND_PARSE_PARAMETERS_NONE() do { \
if (UNEXPECTED(ZEND_NUM_ARGS() != 0)) { \
zend_wrong_parameters_none_error(); \
return; \
} \
} while (0)
static zend_always_inline int zend_wrong_parameters_none_error(void) /* {{{ */
{
int num_args = ZEND_CALL_NUM_ARGS(EG(current_execute_data));
zend_function *active_function = EG(current_execute_data)->func;
const char *class_name = active_function->common.scope ? ZSTR_VAL(active_function->common.scope->name) : "";
zend_internal_argument_count_error(
ZEND_ARG_USES_STRICT_TYPES(),
"%s%s%s() expects %s %d parameter%s, %d given",
class_name, \
class_name[0] ? "::" : "", \
ZSTR_VAL(active_function->common.function_name),
"exactly",
0,
"s",
num_args);
return FAILURE;
}
/* }}} */
#endif
#ifndef ZEND_THIS
#define ZEND_THIS getThis()
#endif
#if PHP_VERSION_ID < 80000
#define Z_OBJ_PROP(ex) (ex)
#else
#define Z_OBJ_PROP(ex) Z_OBJ_P(ex)
#endif
#if PHP_VERSION_ID < 70300
#define zend_string_release_ex(s, f) zend_string_release(s)
#endif
#endif

Комментарий ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/talent518-threadtask.git
git@gitlife.ru:oschina-mirror/talent518-threadtask.git
oschina-mirror
talent518-threadtask
talent518-threadtask
main