mirror of
https://github.com/php/pecl-networking-gearman.git
synced 2026-03-23 23:22:22 +01:00
Fix SegFault on serialization of objects A slight refactor of PR #2 - thanks @SwenVanZanten
This commit is contained in:
@@ -11,7 +11,6 @@ function gearman_worker_create(): GearmanWorker|false {}
|
||||
class GearmanClient {
|
||||
|
||||
public function __construct() {}
|
||||
public function __destruct() {}
|
||||
|
||||
/** @alias gearman_client_return_code */
|
||||
public function returnCode(): int {}
|
||||
@@ -190,8 +189,6 @@ function gearman_client_enable_exception_handler(GearmanClient $obj): bool {}
|
||||
|
||||
class GearmanJob {
|
||||
|
||||
public function __destruct() {}
|
||||
|
||||
/** @alias gearman_job_return_code */
|
||||
public function returnCode(): ?int {}
|
||||
|
||||
@@ -250,8 +247,6 @@ class GearmanTask {
|
||||
|
||||
public function __construct() {}
|
||||
|
||||
public function __destruct() {}
|
||||
|
||||
/** @alias gearman_task_return_code */
|
||||
public function returnCode(): ?int {}
|
||||
|
||||
@@ -305,8 +300,6 @@ function gearman_task_recv_data(GearmanTask $obj, int $data_len): bool|array {}
|
||||
class GearmanWorker {
|
||||
public function __construct() {}
|
||||
|
||||
public function __destruct() {}
|
||||
|
||||
/** @alias gearman_worker_return_code */
|
||||
public function returnCode(): ?int {}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* This is a generated file, edit the .stub.php file instead.
|
||||
* Stub hash: 65cf41fa0f919b8cfa946208297d23ad20ce6a0d */
|
||||
* Stub hash: 83876596992a2d5bc630b6c217f0f52c469872a3 */
|
||||
|
||||
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_gearman_version, 0, 0, IS_STRING, 0)
|
||||
ZEND_END_ARG_INFO()
|
||||
@@ -333,8 +333,6 @@ ZEND_END_ARG_INFO()
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_GearmanClient___construct, 0, 0, 0)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_GearmanClient___destruct arginfo_class_GearmanClient___construct
|
||||
|
||||
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_GearmanClient_returnCode, 0, 0, IS_LONG, 0)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
@@ -457,8 +455,6 @@ ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_GearmanClient_enableExceptionHandler arginfo_class_GearmanClient_wait
|
||||
|
||||
#define arginfo_class_GearmanJob___destruct arginfo_class_GearmanClient___construct
|
||||
|
||||
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_GearmanJob_returnCode, 0, 0, IS_LONG, 1)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
@@ -502,8 +498,6 @@ ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_GearmanTask___construct arginfo_class_GearmanClient___construct
|
||||
|
||||
#define arginfo_class_GearmanTask___destruct arginfo_class_GearmanClient___construct
|
||||
|
||||
#define arginfo_class_GearmanTask_returnCode arginfo_class_GearmanJob_returnCode
|
||||
|
||||
#define arginfo_class_GearmanTask_functionName arginfo_class_GearmanJob_handle
|
||||
@@ -536,8 +530,6 @@ ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_GearmanWorker___construct arginfo_class_GearmanClient___construct
|
||||
|
||||
#define arginfo_class_GearmanWorker___destruct arginfo_class_GearmanClient___construct
|
||||
|
||||
#define arginfo_class_GearmanWorker_returnCode arginfo_class_GearmanJob_returnCode
|
||||
|
||||
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_GearmanWorker_error, 0, 0, MAY_BE_STRING|MAY_BE_FALSE)
|
||||
@@ -693,12 +685,8 @@ ZEND_FUNCTION(gearman_worker_add_function);
|
||||
ZEND_FUNCTION(gearman_worker_work);
|
||||
ZEND_FUNCTION(gearman_worker_ping);
|
||||
ZEND_METHOD(GearmanClient, __construct);
|
||||
ZEND_METHOD(GearmanClient, __destruct);
|
||||
ZEND_METHOD(GearmanJob, __destruct);
|
||||
ZEND_METHOD(GearmanTask, __construct);
|
||||
ZEND_METHOD(GearmanTask, __destruct);
|
||||
ZEND_METHOD(GearmanWorker, __construct);
|
||||
ZEND_METHOD(GearmanWorker, __destruct);
|
||||
|
||||
|
||||
static const zend_function_entry ext_functions[] = {
|
||||
@@ -801,7 +789,6 @@ static const zend_function_entry ext_functions[] = {
|
||||
|
||||
static const zend_function_entry class_GearmanClient_methods[] = {
|
||||
ZEND_ME(GearmanClient, __construct, arginfo_class_GearmanClient___construct, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(GearmanClient, __destruct, arginfo_class_GearmanClient___destruct, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME_MAPPING(returnCode, gearman_client_return_code, arginfo_class_GearmanClient_returnCode, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME_MAPPING(error, gearman_client_error, arginfo_class_GearmanClient_error, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME_MAPPING(getErrno, gearman_client_get_errno, arginfo_class_GearmanClient_getErrno, ZEND_ACC_PUBLIC)
|
||||
@@ -850,7 +837,6 @@ static const zend_function_entry class_GearmanClient_methods[] = {
|
||||
|
||||
|
||||
static const zend_function_entry class_GearmanJob_methods[] = {
|
||||
ZEND_ME(GearmanJob, __destruct, arginfo_class_GearmanJob___destruct, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME_MAPPING(returnCode, gearman_job_return_code, arginfo_class_GearmanJob_returnCode, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME_MAPPING(setReturn, gearman_job_set_return, arginfo_class_GearmanJob_setReturn, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME_MAPPING(sendData, gearman_job_send_data, arginfo_class_GearmanJob_sendData, ZEND_ACC_PUBLIC)
|
||||
@@ -870,7 +856,6 @@ static const zend_function_entry class_GearmanJob_methods[] = {
|
||||
|
||||
static const zend_function_entry class_GearmanTask_methods[] = {
|
||||
ZEND_ME(GearmanTask, __construct, arginfo_class_GearmanTask___construct, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(GearmanTask, __destruct, arginfo_class_GearmanTask___destruct, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME_MAPPING(returnCode, gearman_task_return_code, arginfo_class_GearmanTask_returnCode, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME_MAPPING(functionName, gearman_task_function_name, arginfo_class_GearmanTask_functionName, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME_MAPPING(unique, gearman_task_unique, arginfo_class_GearmanTask_unique, ZEND_ACC_PUBLIC)
|
||||
@@ -889,7 +874,6 @@ static const zend_function_entry class_GearmanTask_methods[] = {
|
||||
|
||||
static const zend_function_entry class_GearmanWorker_methods[] = {
|
||||
ZEND_ME(GearmanWorker, __construct, arginfo_class_GearmanWorker___construct, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(GearmanWorker, __destruct, arginfo_class_GearmanWorker___destruct, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME_MAPPING(returnCode, gearman_worker_return_code, arginfo_class_GearmanWorker_returnCode, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME_MAPPING(error, gearman_worker_error, arginfo_class_GearmanWorker_error, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME_MAPPING(getErrno, gearman_worker_errno, arginfo_class_GearmanWorker_getErrno, ZEND_ACC_PUBLIC)
|
||||
|
||||
@@ -98,24 +98,28 @@ PHP_MINIT_FUNCTION(gearman) {
|
||||
gearman_client_ce->create_object = gearman_client_obj_new;
|
||||
memcpy(&gearman_client_obj_handlers, zend_get_std_object_handlers(), sizeof(gearman_client_obj_handlers));
|
||||
gearman_client_obj_handlers.offset = XtOffsetOf(gearman_client_obj, std);
|
||||
gearman_client_obj_handlers.free_obj = gearman_client_free_obj;
|
||||
|
||||
INIT_CLASS_ENTRY(ce, "GearmanTask", class_GearmanTask_methods);
|
||||
gearman_task_ce = zend_register_internal_class(&ce);
|
||||
gearman_task_ce->create_object = gearman_task_obj_new;
|
||||
memcpy(&gearman_task_obj_handlers, zend_get_std_object_handlers(), sizeof(gearman_task_obj_handlers));
|
||||
gearman_task_obj_handlers.offset = XtOffsetOf(gearman_task_obj, std);
|
||||
gearman_task_obj_handlers.free_obj = gearman_task_free_obj;
|
||||
|
||||
INIT_CLASS_ENTRY(ce, "GearmanWorker", class_GearmanWorker_methods);
|
||||
gearman_worker_ce = zend_register_internal_class(&ce);
|
||||
gearman_worker_ce->create_object = gearman_worker_obj_new;
|
||||
memcpy(&gearman_worker_obj_handlers, zend_get_std_object_handlers(), sizeof(gearman_worker_obj_handlers));
|
||||
gearman_worker_obj_handlers.offset = XtOffsetOf(gearman_worker_obj, std);
|
||||
gearman_worker_obj_handlers.free_obj = gearman_worker_free_obj;
|
||||
|
||||
INIT_CLASS_ENTRY(ce, "GearmanJob", class_GearmanJob_methods);
|
||||
gearman_job_ce = zend_register_internal_class(&ce);
|
||||
gearman_job_ce->create_object = gearman_job_obj_new;
|
||||
memcpy(&gearman_job_obj_handlers, zend_get_std_object_handlers(), sizeof(gearman_job_obj_handlers));
|
||||
gearman_job_obj_handlers.offset = XtOffsetOf(gearman_job_obj, std);
|
||||
gearman_job_obj_handlers.free_obj = gearman_job_free_obj;
|
||||
|
||||
/* XXX exception class */
|
||||
INIT_CLASS_ENTRY(ce, "GearmanException", class_GearmanException_methods)
|
||||
|
||||
@@ -71,12 +71,9 @@ PHP_METHOD(GearmanClient, __construct)
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
/* {{{ proto object GearmanClient::__destruct()
|
||||
cleans up GearmanClient object */
|
||||
PHP_METHOD(GearmanClient, __destruct)
|
||||
{
|
||||
void gearman_client_free_obj(zend_object *object) {
|
||||
char *context = NULL;
|
||||
gearman_client_obj *intern = Z_GEARMAN_CLIENT_P(getThis());
|
||||
gearman_client_obj *intern = gearman_client_fetch_object(object);
|
||||
if (!intern) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
extern zend_class_entry *gearman_client_ce;
|
||||
extern zend_object_handlers gearman_client_obj_handlers;
|
||||
|
||||
void gearman_client_free_obj(zend_object *object);
|
||||
zend_object *gearman_client_obj_new(zend_class_entry *ce);
|
||||
|
||||
typedef enum {
|
||||
@@ -72,51 +73,4 @@ gearman_client_obj *gearman_client_fetch_object(zend_object *obj);
|
||||
(__ret) == GEARMAN_WORK_WARNING || \
|
||||
(__ret) == GEARMAN_WORK_FAIL)
|
||||
|
||||
PHP_FUNCTION(gearman_client_create);
|
||||
PHP_METHOD(GearmanClient, __construct);
|
||||
PHP_METHOD(GearmanClient, __destruct);
|
||||
PHP_FUNCTION(gearman_client_return_code);
|
||||
PHP_FUNCTION(gearman_client_error);
|
||||
PHP_FUNCTION(gearman_client_get_errno);
|
||||
PHP_FUNCTION(gearman_client_options);
|
||||
PHP_FUNCTION(gearman_client_set_options);
|
||||
PHP_FUNCTION(gearman_client_add_options);
|
||||
PHP_FUNCTION(gearman_client_remove_options);
|
||||
PHP_FUNCTION(gearman_client_timeout);
|
||||
PHP_FUNCTION(gearman_client_set_timeout);
|
||||
PHP_FUNCTION(gearman_client_add_server);
|
||||
PHP_FUNCTION(gearman_client_add_servers);
|
||||
PHP_FUNCTION(gearman_client_wait);
|
||||
PHP_FUNCTION(gearman_client_do_normal);
|
||||
PHP_FUNCTION(gearman_client_do_high);
|
||||
PHP_FUNCTION(gearman_client_do_low);
|
||||
PHP_FUNCTION(gearman_client_do_background);
|
||||
PHP_FUNCTION(gearman_client_do_high_background);
|
||||
PHP_FUNCTION(gearman_client_do_low_background);
|
||||
PHP_FUNCTION(gearman_client_do_job_handle);
|
||||
PHP_FUNCTION(gearman_client_do_status);
|
||||
PHP_FUNCTION(gearman_client_job_status);
|
||||
PHP_FUNCTION(gearman_client_job_status_by_unique_key);
|
||||
PHP_FUNCTION(gearman_client_ping);
|
||||
PHP_FUNCTION(gearman_client_add_task);
|
||||
PHP_FUNCTION(gearman_client_add_task_high);
|
||||
PHP_FUNCTION(gearman_client_add_task_low);
|
||||
PHP_FUNCTION(gearman_client_add_task_background);
|
||||
PHP_FUNCTION(gearman_client_add_task_high_background);
|
||||
PHP_FUNCTION(gearman_client_add_task_low_background);
|
||||
PHP_FUNCTION(gearman_client_run_tasks);
|
||||
PHP_FUNCTION(gearman_client_add_task_status);
|
||||
PHP_FUNCTION(gearman_client_set_workload_callback);
|
||||
PHP_FUNCTION(gearman_client_set_created_callback);
|
||||
PHP_FUNCTION(gearman_client_set_data_callback);
|
||||
PHP_FUNCTION(gearman_client_set_warning_callback);
|
||||
PHP_FUNCTION(gearman_client_set_status_callback);
|
||||
PHP_FUNCTION(gearman_client_set_complete_callback);
|
||||
PHP_FUNCTION(gearman_client_set_exception_callback);
|
||||
PHP_FUNCTION(gearman_client_set_fail_callback);
|
||||
PHP_FUNCTION(gearman_client_clear_callbacks);
|
||||
PHP_FUNCTION(gearman_client_context);
|
||||
PHP_FUNCTION(gearman_client_set_context);
|
||||
PHP_FUNCTION(gearman_client_enable_exception_handler);
|
||||
|
||||
#endif /* __PHP_GEARMAN_CLIENT_H */
|
||||
|
||||
@@ -11,20 +11,18 @@
|
||||
|
||||
#include "php_gearman_job.h"
|
||||
|
||||
gearman_job_obj *gearman_job_fetch_object(zend_object *obj) {
|
||||
inline gearman_job_obj *gearman_job_fetch_object(zend_object *obj) {
|
||||
return (gearman_job_obj *)((char*)(obj) - XtOffsetOf(gearman_job_obj, std));
|
||||
}
|
||||
|
||||
/* {{{ proto object GearmanJob::__destruct()
|
||||
cleans up GearmanJob object */
|
||||
PHP_METHOD(GearmanJob, __destruct) {
|
||||
gearman_job_obj *intern = Z_GEARMAN_JOB_P(getThis());
|
||||
void gearman_job_free_obj(zend_object *object) {
|
||||
gearman_job_obj *intern = gearman_job_fetch_object(object);
|
||||
if (!intern) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (intern->flags & GEARMAN_JOB_OBJ_CREATED) {
|
||||
gearman_job_free(intern->job);
|
||||
gearman_job_free(intern->job);
|
||||
}
|
||||
|
||||
zend_object_std_dtor(&intern->std);
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
extern zend_class_entry *gearman_job_ce;
|
||||
extern zend_object_handlers gearman_job_obj_handlers;
|
||||
|
||||
void gearman_job_free_obj(zend_object *object);
|
||||
zend_object *gearman_job_obj_new(zend_class_entry *ce);
|
||||
|
||||
typedef enum {
|
||||
@@ -35,29 +36,14 @@ typedef enum {
|
||||
} gearman_job_obj_flags_t;
|
||||
|
||||
typedef struct {
|
||||
gearman_return_t ret;
|
||||
gearman_return_t ret;
|
||||
gearman_job_obj_flags_t flags;
|
||||
gearman_job_st *job;
|
||||
|
||||
zend_object std;
|
||||
zend_object std;
|
||||
} gearman_job_obj;
|
||||
|
||||
gearman_job_obj *gearman_job_fetch_object(zend_object *obj);
|
||||
#define Z_GEARMAN_JOB_P(zv) gearman_job_fetch_object(Z_OBJ_P((zv)))
|
||||
|
||||
PHP_METHOD(GearmanJob, __destruct);
|
||||
PHP_FUNCTION(gearman_job_return_code);
|
||||
PHP_FUNCTION(gearman_job_set_return);
|
||||
PHP_FUNCTION(gearman_job_send_data);
|
||||
PHP_FUNCTION(gearman_job_send_warning);
|
||||
PHP_FUNCTION(gearman_job_send_status);
|
||||
PHP_FUNCTION(gearman_job_send_complete);
|
||||
PHP_FUNCTION(gearman_job_send_exception);
|
||||
PHP_FUNCTION(gearman_job_send_fail);
|
||||
PHP_FUNCTION(gearman_job_handle);
|
||||
PHP_FUNCTION(gearman_job_function_name);
|
||||
PHP_FUNCTION(gearman_job_unique);
|
||||
PHP_FUNCTION(gearman_job_workload);
|
||||
PHP_FUNCTION(gearman_job_workload_size);
|
||||
|
||||
#endif /* __PHP_GEARMAN_JOB_H */
|
||||
|
||||
@@ -127,10 +127,8 @@ gearman_return_t _php_task_fail_fn(gearman_task_st *task) {
|
||||
PHP_METHOD(GearmanTask, __construct) {
|
||||
}
|
||||
|
||||
/* {{{ proto object GearmanTask::__destruct()
|
||||
Destroys a task object */
|
||||
PHP_METHOD(GearmanTask, __destruct) {
|
||||
gearman_task_obj *intern = Z_GEARMAN_TASK_P(getThis());
|
||||
void gearman_task_free_obj(zend_object *object) {
|
||||
gearman_task_obj *intern = gearman_task_fetch_object(object);
|
||||
if (!intern) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
#include <libgearman-1.0/interface/status.h>
|
||||
#include <libgearman-1.0/status.h>
|
||||
|
||||
void gearman_task_free_obj(zend_object *object);
|
||||
zend_object *gearman_task_obj_new(zend_class_entry *ce);
|
||||
extern zend_class_entry *gearman_task_ce;
|
||||
extern zend_object_handlers gearman_task_obj_handlers;
|
||||
@@ -61,19 +62,4 @@ gearman_return_t _php_task_complete_fn(gearman_task_st *task);
|
||||
gearman_return_t _php_task_exception_fn(gearman_task_st *task);
|
||||
gearman_return_t _php_task_fail_fn(gearman_task_st *task);
|
||||
|
||||
PHP_METHOD(GearmanTask, __construct);
|
||||
PHP_METHOD(GearmanTask, __destruct);
|
||||
PHP_FUNCTION(gearman_task_return_code);
|
||||
PHP_FUNCTION(gearman_task_function_name);
|
||||
PHP_FUNCTION(gearman_task_unique);
|
||||
PHP_FUNCTION(gearman_task_job_handle);
|
||||
PHP_FUNCTION(gearman_task_is_known);
|
||||
PHP_FUNCTION(gearman_task_is_running);
|
||||
PHP_FUNCTION(gearman_task_numerator);
|
||||
PHP_FUNCTION(gearman_task_denominator);
|
||||
PHP_FUNCTION(gearman_task_data);
|
||||
PHP_FUNCTION(gearman_task_data_size);
|
||||
PHP_FUNCTION(gearman_task_send_workload);
|
||||
PHP_FUNCTION(gearman_task_recv_data);
|
||||
|
||||
#endif /* __PHP_GEARMAN_TASK_H */
|
||||
|
||||
@@ -57,11 +57,8 @@ PHP_METHOD(GearmanWorker, __construct) {
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
/* {{{ proto object GearmanWorker::__destruct()
|
||||
Destroys a worker object */
|
||||
PHP_METHOD(GearmanWorker, __destruct) {
|
||||
gearman_worker_obj *intern = Z_GEARMAN_WORKER_P(getThis());
|
||||
|
||||
void gearman_worker_free_obj(zend_object *object) {
|
||||
gearman_worker_obj *intern = gearman_worker_fetch_object(object);
|
||||
if (!intern) {
|
||||
return;
|
||||
}
|
||||
@@ -73,7 +70,6 @@ PHP_METHOD(GearmanWorker, __destruct) {
|
||||
zval_dtor(&intern->cb_list);
|
||||
zend_object_std_dtor(&intern->std);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
static inline void cb_list_dtor(zval *zv) {
|
||||
gearman_worker_cb_obj *worker_cb = Z_PTR_P(zv);
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
extern zend_class_entry *gearman_worker_ce;
|
||||
extern zend_object_handlers gearman_worker_obj_handlers;
|
||||
|
||||
void gearman_worker_free_obj(zend_object *object);
|
||||
zend_object *gearman_worker_obj_new(zend_class_entry *ce);
|
||||
|
||||
typedef struct {
|
||||
@@ -43,39 +44,15 @@ typedef enum {
|
||||
} gearman_worker_obj_flags_t;
|
||||
|
||||
typedef struct {
|
||||
gearman_return_t ret;
|
||||
gearman_return_t ret;
|
||||
gearman_worker_obj_flags_t flags;
|
||||
gearman_worker_st worker;
|
||||
zval cb_list;
|
||||
|
||||
zend_object std;
|
||||
zend_object std;
|
||||
} gearman_worker_obj;
|
||||
|
||||
gearman_worker_obj *gearman_worker_fetch_object(zend_object *obj);
|
||||
#define Z_GEARMAN_WORKER_P(zv) gearman_worker_fetch_object(Z_OBJ_P((zv)))
|
||||
|
||||
PHP_FUNCTION(gearman_worker_create);
|
||||
PHP_METHOD(GearmanWorker, __construct);
|
||||
PHP_METHOD(GearmanWorker, __destruct);
|
||||
PHP_FUNCTION(gearman_worker_return_code);
|
||||
PHP_FUNCTION(gearman_worker_error);
|
||||
PHP_FUNCTION(gearman_worker_errno);
|
||||
PHP_FUNCTION(gearman_worker_options);
|
||||
PHP_FUNCTION(gearman_worker_set_options);
|
||||
PHP_FUNCTION(gearman_worker_add_options);
|
||||
PHP_FUNCTION(gearman_worker_remove_options);
|
||||
PHP_FUNCTION(gearman_worker_timeout);
|
||||
PHP_FUNCTION(gearman_worker_set_timeout);
|
||||
PHP_FUNCTION(gearman_worker_set_id);
|
||||
PHP_FUNCTION(gearman_worker_add_server);
|
||||
PHP_FUNCTION(gearman_worker_add_servers);
|
||||
PHP_FUNCTION(gearman_worker_wait);
|
||||
PHP_FUNCTION(gearman_worker_register);
|
||||
PHP_FUNCTION(gearman_worker_unregister);
|
||||
PHP_FUNCTION(gearman_worker_unregister_all);
|
||||
PHP_FUNCTION(gearman_worker_grab_job);
|
||||
PHP_FUNCTION(gearman_worker_add_function);
|
||||
PHP_FUNCTION(gearman_worker_work);
|
||||
PHP_FUNCTION(gearman_worker_ping);
|
||||
|
||||
#endif /* __PHP_GEARMAN_WORKER_H */
|
||||
|
||||
21
tests/gearman_client_022.phpt
Normal file
21
tests/gearman_client_022.phpt
Normal file
@@ -0,0 +1,21 @@
|
||||
--TEST--
|
||||
unserialize(serialize(GearmanClient))
|
||||
--SKIPIF--
|
||||
<?php if (!extension_loaded("gearman")) print "skip"; ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$i = 0;
|
||||
while ($i <= 5) {
|
||||
echo $i;
|
||||
$client = new GearmanClient();
|
||||
unserialize(serialize($client));
|
||||
$i++;
|
||||
}
|
||||
print PHP_EOL;
|
||||
|
||||
print "OK";
|
||||
?>
|
||||
--EXPECT--
|
||||
012345
|
||||
OK
|
||||
21
tests/gearman_job_003.phpt
Normal file
21
tests/gearman_job_003.phpt
Normal file
@@ -0,0 +1,21 @@
|
||||
--TEST--
|
||||
unserialize(serialize(GearmanJob))
|
||||
--SKIPIF--
|
||||
<?php if (!extension_loaded("gearman")) print "skip"; ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$i = 0;
|
||||
while ($i <= 5) {
|
||||
echo $i;
|
||||
$job = new GearmanJob();
|
||||
unserialize(serialize($job));
|
||||
$i++;
|
||||
}
|
||||
print PHP_EOL;
|
||||
|
||||
print "OK";
|
||||
?>
|
||||
--EXPECT--
|
||||
012345
|
||||
OK
|
||||
20
tests/gearman_task_006.phpt
Normal file
20
tests/gearman_task_006.phpt
Normal file
@@ -0,0 +1,20 @@
|
||||
--TEST--
|
||||
unserialize(serialize(GearmanTask))
|
||||
--SKIPIF--
|
||||
<?php if (!extension_loaded("gearman")) print "skip"; ?>
|
||||
--FILE--
|
||||
<?php
|
||||
$i = 0;
|
||||
while ($i <= 5) {
|
||||
echo $i;
|
||||
$client = new GearmanTask();
|
||||
unserialize(serialize($client));
|
||||
$i++;
|
||||
}
|
||||
print PHP_EOL;
|
||||
|
||||
print "OK";
|
||||
?>
|
||||
--EXPECT--
|
||||
012345
|
||||
OK
|
||||
21
tests/gearman_worker_017.phpt
Normal file
21
tests/gearman_worker_017.phpt
Normal file
@@ -0,0 +1,21 @@
|
||||
--TEST--
|
||||
unserialize(serialize(GearmanWorker))
|
||||
--SKIPIF--
|
||||
<?php if (!extension_loaded("gearman")) print "skip"; ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$i = 0;
|
||||
while ($i <= 5) {
|
||||
echo $i;
|
||||
$client = new GearmanWorker();
|
||||
unserialize(serialize($client));
|
||||
$i++;
|
||||
}
|
||||
print PHP_EOL;
|
||||
|
||||
print "OK";
|
||||
?>
|
||||
--EXPECT--
|
||||
012345
|
||||
OK
|
||||
Reference in New Issue
Block a user