├── .gitattributes ├── .gitignore ├── .travis.yml ├── CREDITS ├── EXPERIMENTAL ├── LICENSE ├── README.md ├── REFERENCE_CN.md ├── REFERENCE_EN.md ├── config.m4 ├── config.w32 ├── docker ├── CentOS7-Base-163.repo ├── Dockerfile ├── build.bash └── php-fpm.conf ├── examples ├── chan_greetings.php ├── chan_read_write_closed_chan.php ├── chan_trypop_simulate_pop.php ├── chan_trypush_simulate_push.php ├── select_block.phpt ├── select_producer_consumer.php ├── select_read_default.php ├── selector_loop.php └── selector_select.php ├── md ├── cn │ ├── chan-close.md │ ├── chan-construct.md │ ├── chan-destruct.md │ ├── chan-pop.md │ ├── chan-push.md │ ├── chan-trypop.md │ ├── chan-trypush.md │ ├── chan.md │ ├── go.md │ ├── goo.md │ ├── mutex-construct.md │ ├── mutex-destruct.md │ ├── mutex-islock.md │ ├── mutex-lock.md │ ├── mutex-trylock.md │ ├── mutex-unlock.md │ ├── mutex.md │ ├── runtime-goid.md │ ├── runtime-gosched.md │ ├── runtime-numGoroutine.md │ ├── runtime.md │ ├── scheduler-join.md │ ├── scheduler-loop.md │ ├── scheduler-run.md │ ├── scheduler.md │ ├── select.md │ ├── selector-construct.md │ ├── selector-loop.md │ ├── selector-select.md │ ├── selector.md │ ├── time-after.md │ ├── time-sleep.md │ ├── time-tick.md │ ├── time.md │ ├── waitgroup-add.md │ ├── waitgroup-construct.md │ ├── waitgroup-destruct.md │ ├── waitgroup-done.md │ ├── waitgroup-wait.md │ └── waitgroup.md └── en │ ├── chan-close.md │ ├── chan-construct.md │ ├── chan-destruct.md │ ├── chan-pop.md │ ├── chan-push.md │ ├── chan-trypop.md │ ├── chan-trypush.md │ ├── chan.md │ ├── go.md │ ├── mutex-construct.md │ ├── mutex-destruct.md │ ├── mutex-islock.md │ ├── mutex-lock.md │ ├── mutex-trylock.md │ ├── mutex-unlock.md │ ├── mutex.md │ ├── runtime-goid.md │ ├── runtime-gosched.md │ ├── runtime-numGoroutine.md │ ├── runtime.md │ ├── scheduler-join.md │ ├── scheduler-loop.md │ ├── scheduler-run.md │ ├── scheduler.md │ ├── select.md │ ├── selector-construct.md │ ├── selector-loop.md │ ├── selector-select.md │ ├── selector.md │ ├── time-after.md │ ├── time-sleep.md │ ├── time-tick.md │ ├── time.md │ ├── waitgroup-add.md │ ├── waitgroup-construct.md │ ├── waitgroup-destruct.md │ ├── waitgroup-done.md │ ├── waitgroup-wait.md │ └── waitgroup.md ├── src ├── basic_functions.cc ├── co_recursive_mutex.h ├── co_wait_group.h ├── defer.h ├── freeable.h ├── global_defs.h ├── go.cc ├── go.h ├── go_chan.cc ├── go_chan.h ├── go_mutex.h ├── go_runtime.cc ├── go_runtime.h ├── go_scheduler.cc ├── go_scheduler.h ├── go_select.cc ├── go_select.h ├── go_time.cc ├── go_time.h ├── go_wait_group.h ├── php_phpgo.h ├── php_version_dependent.h ├── phpgo.cc ├── phpgo_context.cc ├── phpgo_context.h ├── stdinc.h ├── task_listener.h ├── task_local_storage.cc ├── task_local_storage.h ├── test_mutex.cc ├── zend_variables_persist.cc └── zend_variables_persist.h ├── test_php └── tests ├── 001_phpgo_presence.phpt ├── 002_go_hello_world.phpt ├── 003_go_named_function.phpt ├── 004_go_closure_with_args.phpt ├── 005_go_closure_with_128_args.phpt ├── 006_go_closure_with_256_args.phpt ├── 007_go_closure_with_256_local_vars.phpt ├── 008_go_closure_with_1024_local_vars.phpt ├── 009_go_recursive_function_128_levels.phpt ├── 010_go_recursive_function_4096_levels.phpt ├── 011_go_routines_of_16_nested_levels.phpt ├── 012_go_routines_of_10240_concurrence.phpt__ ├── 021_go_chan_create.phpt ├── 022_go_chan_create_error_1.phpt ├── 023_go_chan_create_error_2.phpt ├── 024_go_chan_create_error_3.phpt ├── 025_go_chan_create_error_4.phpt ├── 026_go_chan_create_error_5.phpt ├── 027_go_chan_create_error_6.phpt ├── 029_go_chan_pop_outside_of_go_routine.phpt ├── 030_go_chan_1_push_pop.phpt ├── 031_go_chan_0_push_pop.phpt ├── 032_go_chan_push_pop_array.phpt ├── 033_go_chan_push_pop_object.phpt ├── 034_go_chan_1_copy_push_pop.phpt ├── 035_go_chan_0_copy_push_pop.phpt ├── 036_go_chan_10_copy_push_pop.phpt ├── 037_go_chan_10_push_pop.phpt ├── 038_go_chan_trypush_trypop_close.phpt ├── 039_go_chan_close_warnings.phpt ├── 040_go_select_read_select_write.phpt ├── 041_go_select_read_write_default.phpt ├── 042_go_select_read_write.phpt ├── 043_go_select_read_write_default_timer.phpt ├── 044_go_select_short_cut_syntax.phpt ├── 045_go_select_error_invalid_case_type.phpt ├── 046_go_select_error_invalid_channel_parameter.phpt ├── 047_go_select_error_insufficient_parameters.phpt ├── 048_go_select_error_insufficient_parameters_2.phpt ├── 050_go_redis_con_shared_by_muti_go_routines.phpt ├── 051_go_redis_dedicate_cons_by_muti_go_routines.phpt ├── 060_go_mysql_con_shared_by_muti_go_routines.phpt ├── 061_go_mysql_dedicate_cons_by_muti_go_routines.phpt ├── 071_go_waitgroup_test.phpt ├── 081_go_mutex_basic_test.phpt ├── 082_go_mutex_recursively_lock.phpt ├── 091_go_runtime_basic_test.phpt ├── 101_go_routines_with_swoole_server.phpt__ ├── 102_go_routines_with_swoole_server_nogo.phpt__ ├── 111_go_scheduler_run.phpt ├── 112_go_scheduler_goid.phpt ├── 121_go_super_globals_inherits.phpt ├── 131_go_time_basic_test.phpt ├── 141_go_exit.phpt ├── 151_go_compatibility_file_get_content.phpt ├── 153_go_compatibility_curl.phpt ├── 161_go_shutdown_func.phpt ├── 162_go_error_handler.phpt └── known_issues └── block_object_was_waiting_when_destructor.php /.gitattributes: -------------------------------------------------------------------------------- 1 | * linguist-language=c++ 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/.gitignore -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/.travis.yml -------------------------------------------------------------------------------- /CREDITS: -------------------------------------------------------------------------------- 1 | phpgo -------------------------------------------------------------------------------- /EXPERIMENTAL: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/README.md -------------------------------------------------------------------------------- /REFERENCE_CN.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/REFERENCE_CN.md -------------------------------------------------------------------------------- /REFERENCE_EN.md: -------------------------------------------------------------------------------- 1 | The phpgo referecne manual will be updated ,,, very soon! 2 | -------------------------------------------------------------------------------- /config.m4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/config.m4 -------------------------------------------------------------------------------- /config.w32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/config.w32 -------------------------------------------------------------------------------- /docker/CentOS7-Base-163.repo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/docker/CentOS7-Base-163.repo -------------------------------------------------------------------------------- /docker/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/docker/Dockerfile -------------------------------------------------------------------------------- /docker/build.bash: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/docker/build.bash -------------------------------------------------------------------------------- /docker/php-fpm.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/docker/php-fpm.conf -------------------------------------------------------------------------------- /examples/chan_greetings.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/examples/chan_greetings.php -------------------------------------------------------------------------------- /examples/chan_read_write_closed_chan.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/examples/chan_read_write_closed_chan.php -------------------------------------------------------------------------------- /examples/chan_trypop_simulate_pop.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/examples/chan_trypop_simulate_pop.php -------------------------------------------------------------------------------- /examples/chan_trypush_simulate_push.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/examples/chan_trypush_simulate_push.php -------------------------------------------------------------------------------- /examples/select_block.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/examples/select_block.phpt -------------------------------------------------------------------------------- /examples/select_producer_consumer.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/examples/select_producer_consumer.php -------------------------------------------------------------------------------- /examples/select_read_default.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/examples/select_read_default.php -------------------------------------------------------------------------------- /examples/selector_loop.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/examples/selector_loop.php -------------------------------------------------------------------------------- /examples/selector_select.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/examples/selector_select.php -------------------------------------------------------------------------------- /md/cn/chan-close.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/md/cn/chan-close.md -------------------------------------------------------------------------------- /md/cn/chan-construct.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/md/cn/chan-construct.md -------------------------------------------------------------------------------- /md/cn/chan-destruct.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/cn/chan-pop.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/md/cn/chan-pop.md -------------------------------------------------------------------------------- /md/cn/chan-push.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/md/cn/chan-push.md -------------------------------------------------------------------------------- /md/cn/chan-trypop.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/md/cn/chan-trypop.md -------------------------------------------------------------------------------- /md/cn/chan-trypush.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/md/cn/chan-trypush.md -------------------------------------------------------------------------------- /md/cn/chan.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/cn/go.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/md/cn/go.md -------------------------------------------------------------------------------- /md/cn/goo.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/md/cn/goo.md -------------------------------------------------------------------------------- /md/cn/mutex-construct.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/cn/mutex-destruct.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/cn/mutex-islock.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/cn/mutex-lock.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/cn/mutex-trylock.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/cn/mutex-unlock.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/cn/mutex.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/cn/runtime-goid.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/cn/runtime-gosched.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/cn/runtime-numGoroutine.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/cn/runtime.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/cn/scheduler-join.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/md/cn/scheduler-join.md -------------------------------------------------------------------------------- /md/cn/scheduler-loop.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /md/cn/scheduler-run.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/cn/scheduler.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/cn/select.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/md/cn/select.md -------------------------------------------------------------------------------- /md/cn/selector-construct.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/cn/selector-loop.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/md/cn/selector-loop.md -------------------------------------------------------------------------------- /md/cn/selector-select.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/md/cn/selector-select.md -------------------------------------------------------------------------------- /md/cn/selector.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/cn/time-after.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/cn/time-sleep.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/cn/time-tick.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/cn/time.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/cn/waitgroup-add.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/cn/waitgroup-construct.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/cn/waitgroup-destruct.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/cn/waitgroup-done.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/cn/waitgroup-wait.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/cn/waitgroup.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/chan-close.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/chan-construct.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/chan-destruct.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/chan-pop.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/chan-push.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/chan-trypop.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/chan-trypush.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/chan.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/go.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/mutex-construct.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/mutex-destruct.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/mutex-islock.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/mutex-lock.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/mutex-trylock.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/mutex-unlock.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/mutex.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/runtime-goid.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/runtime-gosched.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/runtime-numGoroutine.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/runtime.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/scheduler-join.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/scheduler-loop.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/scheduler-run.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/scheduler.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/select.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/selector-construct.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/selector-loop.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/selector-select.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/selector.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/time-after.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/time-sleep.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/time-tick.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/time.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/waitgroup-add.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/waitgroup-construct.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/waitgroup-destruct.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/waitgroup-done.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/waitgroup-wait.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /md/en/waitgroup.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/basic_functions.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/src/basic_functions.cc -------------------------------------------------------------------------------- /src/co_recursive_mutex.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/src/co_recursive_mutex.h -------------------------------------------------------------------------------- /src/co_wait_group.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/src/co_wait_group.h -------------------------------------------------------------------------------- /src/defer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/src/defer.h -------------------------------------------------------------------------------- /src/freeable.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/src/freeable.h -------------------------------------------------------------------------------- /src/global_defs.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/src/global_defs.h -------------------------------------------------------------------------------- /src/go.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/src/go.cc -------------------------------------------------------------------------------- /src/go.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/src/go.h -------------------------------------------------------------------------------- /src/go_chan.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/src/go_chan.cc -------------------------------------------------------------------------------- /src/go_chan.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/src/go_chan.h -------------------------------------------------------------------------------- /src/go_mutex.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/src/go_mutex.h -------------------------------------------------------------------------------- /src/go_runtime.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/src/go_runtime.cc -------------------------------------------------------------------------------- /src/go_runtime.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/src/go_runtime.h -------------------------------------------------------------------------------- /src/go_scheduler.cc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/go_scheduler.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/src/go_scheduler.h -------------------------------------------------------------------------------- /src/go_select.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/src/go_select.cc -------------------------------------------------------------------------------- /src/go_select.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/src/go_select.h -------------------------------------------------------------------------------- /src/go_time.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/src/go_time.cc -------------------------------------------------------------------------------- /src/go_time.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/src/go_time.h -------------------------------------------------------------------------------- /src/go_wait_group.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/src/go_wait_group.h -------------------------------------------------------------------------------- /src/php_phpgo.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/src/php_phpgo.h -------------------------------------------------------------------------------- /src/php_version_dependent.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/src/php_version_dependent.h -------------------------------------------------------------------------------- /src/phpgo.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/src/phpgo.cc -------------------------------------------------------------------------------- /src/phpgo_context.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/src/phpgo_context.cc -------------------------------------------------------------------------------- /src/phpgo_context.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/src/phpgo_context.h -------------------------------------------------------------------------------- /src/stdinc.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/src/stdinc.h -------------------------------------------------------------------------------- /src/task_listener.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/src/task_listener.h -------------------------------------------------------------------------------- /src/task_local_storage.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/src/task_local_storage.cc -------------------------------------------------------------------------------- /src/task_local_storage.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/src/task_local_storage.h -------------------------------------------------------------------------------- /src/test_mutex.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/src/test_mutex.cc -------------------------------------------------------------------------------- /src/zend_variables_persist.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/src/zend_variables_persist.cc -------------------------------------------------------------------------------- /src/zend_variables_persist.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/src/zend_variables_persist.h -------------------------------------------------------------------------------- /test_php: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | export LD_PRELOAD=liblibgo.so 3 | php "$@" 4 | -------------------------------------------------------------------------------- /tests/001_phpgo_presence.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/001_phpgo_presence.phpt -------------------------------------------------------------------------------- /tests/002_go_hello_world.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/002_go_hello_world.phpt -------------------------------------------------------------------------------- /tests/003_go_named_function.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/003_go_named_function.phpt -------------------------------------------------------------------------------- /tests/004_go_closure_with_args.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/004_go_closure_with_args.phpt -------------------------------------------------------------------------------- /tests/005_go_closure_with_128_args.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/005_go_closure_with_128_args.phpt -------------------------------------------------------------------------------- /tests/006_go_closure_with_256_args.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/006_go_closure_with_256_args.phpt -------------------------------------------------------------------------------- /tests/007_go_closure_with_256_local_vars.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/007_go_closure_with_256_local_vars.phpt -------------------------------------------------------------------------------- /tests/008_go_closure_with_1024_local_vars.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/008_go_closure_with_1024_local_vars.phpt -------------------------------------------------------------------------------- /tests/009_go_recursive_function_128_levels.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/009_go_recursive_function_128_levels.phpt -------------------------------------------------------------------------------- /tests/010_go_recursive_function_4096_levels.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/010_go_recursive_function_4096_levels.phpt -------------------------------------------------------------------------------- /tests/011_go_routines_of_16_nested_levels.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/011_go_routines_of_16_nested_levels.phpt -------------------------------------------------------------------------------- /tests/012_go_routines_of_10240_concurrence.phpt__: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/012_go_routines_of_10240_concurrence.phpt__ -------------------------------------------------------------------------------- /tests/021_go_chan_create.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/021_go_chan_create.phpt -------------------------------------------------------------------------------- /tests/022_go_chan_create_error_1.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/022_go_chan_create_error_1.phpt -------------------------------------------------------------------------------- /tests/023_go_chan_create_error_2.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/023_go_chan_create_error_2.phpt -------------------------------------------------------------------------------- /tests/024_go_chan_create_error_3.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/024_go_chan_create_error_3.phpt -------------------------------------------------------------------------------- /tests/025_go_chan_create_error_4.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/025_go_chan_create_error_4.phpt -------------------------------------------------------------------------------- /tests/026_go_chan_create_error_5.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/026_go_chan_create_error_5.phpt -------------------------------------------------------------------------------- /tests/027_go_chan_create_error_6.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/027_go_chan_create_error_6.phpt -------------------------------------------------------------------------------- /tests/029_go_chan_pop_outside_of_go_routine.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/029_go_chan_pop_outside_of_go_routine.phpt -------------------------------------------------------------------------------- /tests/030_go_chan_1_push_pop.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/030_go_chan_1_push_pop.phpt -------------------------------------------------------------------------------- /tests/031_go_chan_0_push_pop.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/031_go_chan_0_push_pop.phpt -------------------------------------------------------------------------------- /tests/032_go_chan_push_pop_array.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/032_go_chan_push_pop_array.phpt -------------------------------------------------------------------------------- /tests/033_go_chan_push_pop_object.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/033_go_chan_push_pop_object.phpt -------------------------------------------------------------------------------- /tests/034_go_chan_1_copy_push_pop.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/034_go_chan_1_copy_push_pop.phpt -------------------------------------------------------------------------------- /tests/035_go_chan_0_copy_push_pop.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/035_go_chan_0_copy_push_pop.phpt -------------------------------------------------------------------------------- /tests/036_go_chan_10_copy_push_pop.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/036_go_chan_10_copy_push_pop.phpt -------------------------------------------------------------------------------- /tests/037_go_chan_10_push_pop.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/037_go_chan_10_push_pop.phpt -------------------------------------------------------------------------------- /tests/038_go_chan_trypush_trypop_close.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/038_go_chan_trypush_trypop_close.phpt -------------------------------------------------------------------------------- /tests/039_go_chan_close_warnings.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/039_go_chan_close_warnings.phpt -------------------------------------------------------------------------------- /tests/040_go_select_read_select_write.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/040_go_select_read_select_write.phpt -------------------------------------------------------------------------------- /tests/041_go_select_read_write_default.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/041_go_select_read_write_default.phpt -------------------------------------------------------------------------------- /tests/042_go_select_read_write.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/042_go_select_read_write.phpt -------------------------------------------------------------------------------- /tests/043_go_select_read_write_default_timer.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/043_go_select_read_write_default_timer.phpt -------------------------------------------------------------------------------- /tests/044_go_select_short_cut_syntax.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/044_go_select_short_cut_syntax.phpt -------------------------------------------------------------------------------- /tests/045_go_select_error_invalid_case_type.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/045_go_select_error_invalid_case_type.phpt -------------------------------------------------------------------------------- /tests/046_go_select_error_invalid_channel_parameter.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/046_go_select_error_invalid_channel_parameter.phpt -------------------------------------------------------------------------------- /tests/047_go_select_error_insufficient_parameters.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/047_go_select_error_insufficient_parameters.phpt -------------------------------------------------------------------------------- /tests/048_go_select_error_insufficient_parameters_2.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/048_go_select_error_insufficient_parameters_2.phpt -------------------------------------------------------------------------------- /tests/050_go_redis_con_shared_by_muti_go_routines.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/050_go_redis_con_shared_by_muti_go_routines.phpt -------------------------------------------------------------------------------- /tests/051_go_redis_dedicate_cons_by_muti_go_routines.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/051_go_redis_dedicate_cons_by_muti_go_routines.phpt -------------------------------------------------------------------------------- /tests/060_go_mysql_con_shared_by_muti_go_routines.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/060_go_mysql_con_shared_by_muti_go_routines.phpt -------------------------------------------------------------------------------- /tests/061_go_mysql_dedicate_cons_by_muti_go_routines.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/061_go_mysql_dedicate_cons_by_muti_go_routines.phpt -------------------------------------------------------------------------------- /tests/071_go_waitgroup_test.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/071_go_waitgroup_test.phpt -------------------------------------------------------------------------------- /tests/081_go_mutex_basic_test.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/081_go_mutex_basic_test.phpt -------------------------------------------------------------------------------- /tests/082_go_mutex_recursively_lock.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/082_go_mutex_recursively_lock.phpt -------------------------------------------------------------------------------- /tests/091_go_runtime_basic_test.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/091_go_runtime_basic_test.phpt -------------------------------------------------------------------------------- /tests/101_go_routines_with_swoole_server.phpt__: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/101_go_routines_with_swoole_server.phpt__ -------------------------------------------------------------------------------- /tests/102_go_routines_with_swoole_server_nogo.phpt__: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/102_go_routines_with_swoole_server_nogo.phpt__ -------------------------------------------------------------------------------- /tests/111_go_scheduler_run.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/111_go_scheduler_run.phpt -------------------------------------------------------------------------------- /tests/112_go_scheduler_goid.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/112_go_scheduler_goid.phpt -------------------------------------------------------------------------------- /tests/121_go_super_globals_inherits.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/121_go_super_globals_inherits.phpt -------------------------------------------------------------------------------- /tests/131_go_time_basic_test.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/131_go_time_basic_test.phpt -------------------------------------------------------------------------------- /tests/141_go_exit.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/141_go_exit.phpt -------------------------------------------------------------------------------- /tests/151_go_compatibility_file_get_content.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/151_go_compatibility_file_get_content.phpt -------------------------------------------------------------------------------- /tests/153_go_compatibility_curl.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/153_go_compatibility_curl.phpt -------------------------------------------------------------------------------- /tests/161_go_shutdown_func.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/161_go_shutdown_func.phpt -------------------------------------------------------------------------------- /tests/162_go_error_handler.phpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/162_go_error_handler.phpt -------------------------------------------------------------------------------- /tests/known_issues/block_object_was_waiting_when_destructor.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/birdwyx/phpgo/HEAD/tests/known_issues/block_object_was_waiting_when_destructor.php --------------------------------------------------------------------------------