Commit Graph

12 Commits

Author SHA1 Message Date
Javier Guerra
21590e99d6 fix(threading) use a pointer to lock the mutex 2019-12-11 14:16:51 -08:00
Javier
f8c9246577 refactor(*) no json (#1)
* it runs... something

* use strings for dict keys

* small cleanups / better locking

* add StepXXX RPC methods to express non-primitive PDK return types

* remove commented code

* define recognizable error type

* config schema as a structure, not a string that happens to be decodable

* changed Kong capitalization because of Go

* reread plugin if modified on disk

* docs about event cycle and callback return types

* The standard package can't reload Plugins

* add status report, including some timekeeping

* expire instances after 60sec idle

* a bit of logging

* send PID on status and on connection (as unrequested notification)
2019-12-11 14:16:51 -08:00
Javier Guerra
b59c19779f fix(*) pass pointers to share lock
Also lock the plugin when doing symbol lookup.
2019-12-11 14:16:51 -08:00
Javier Guerra
ca99408e13 refactor(*) stronger concurrency locks 2019-12-11 14:16:51 -08:00
Javier Guerra
9c17f1c76f refactor(*) split for readability
Split event and instance handling code into their own modules.
2019-12-11 14:16:51 -08:00
Javier Guerra
251d8ad9d2 docs(*) add doc comments 2019-12-11 14:16:51 -08:00
Javier Guerra
db0d11e5ae refactor(*) reorder according to lifespan 2019-12-11 14:16:47 -08:00
Javier Guerra
8777138bdd feat(*) start goroutine per event 2019-12-11 14:16:05 -08:00
Javier Guerra
0027a3b027 feat(*) working Step()
TODOs:
 - decode the in & out parameters (method + params) together on the RPC object.  currently they're a single string because the go-pdk expects a string channel
 - the instance goroutine finishes after a single event, should stay until the instance is closed
2019-12-11 14:11:18 -08:00
Javier Guerra
ca3b80fff1 handlers are bound to config, so have to live in the instance struct 2019-12-11 14:11:18 -08:00
Javier Guerra
09ddf7101c feat(*) new methods
- SetPluginDir()
- GetPluginInfo()
- StartInstance()
- CloseInstance()
- Assume multiple threads; add mutex
2019-12-11 14:05:15 -08:00
Javier Guerra
25ad77318d feat(*) initial commit
msgpackrpc and plugin loader (copied from existing runtime)
2019-12-11 14:04:33 -08:00