mirror of
https://github.com/cloudwu/skynet.git
synced 2026-07-23 03:23:08 +00:00
8e2facbfb8cb7ded4e916786d087c455ddabfc96
crash occr analise: 1.sharedated.update call many times in a short time(eg:3 times) to change a same name conf value to a->b->c->d. 2.sharedated sending 3 response to monitoring clients。a->b and b->c and c->d. 3.if b is destroyed and it's memory is reallocated and rewrited when client process the first message a->b, client's call lbox will crash. solution: conf b must be keeped before message(a->b) is processed by inc it's ref. Any return value from host to client must use incref before send to client.
Skynet is a lightweight online game framework which can be used in many other fields.
Build
For Linux, install autoconf first for jemalloc:
git clone https://github.com/cloudwu/skynet.git
cd skynet
make 'PLATFORM' # PLATFORM can be linux, macosx, freebsd now
Or:
export PLAT=linux
make
For FreeBSD , use gmake instead of make.
Test
Run these in different consoles:
./skynet examples/config # Launch first skynet node (Gate server) and a skynet-master (see config for standalone option)
./3rd/lua/lua examples/client.lua # Launch a client, and try to input hello.
About Lua version
Skynet now uses a modified version of lua 5.3.5 ( https://github.com/ejoy/lua/tree/skynet ) for multiple lua states.
Official Lua versions can also be used as long as the Makefile is edited.
How To Use (Sorry, currently only available in Chinese)
- Read Wiki for documents https://github.com/cloudwu/skynet/wiki
- The FAQ in wiki https://github.com/cloudwu/skynet/wiki/FAQ
Languages
C
73.2%
Lua
23.5%
HTML
2.4%
Makefile
0.9%
