Commit Graph

414 Commits

Author SHA1 Message Date
Jason Rhinelander 318781a6d4 Update macos build to use 10.14 compatibility 2020-10-15 15:49:54 -03:00
Jason Rhinelander 36957078cd Update macos build to use 10.14 compatibility 2020-10-13 18:10:34 -03:00
Jason Rhinelander 11b9240a44 1.2.0 release 2020-09-30 17:19:09 -03:00
Jason Rhinelander 04acd63128 Merge remote-tracking branch 'origin/master' into ubuntu/groovy 2020-09-30 17:18:40 -03:00
Jason Rhinelander 53481cdfa9 Merge remote-tracking branch 'origin/dev' into master 2020-09-30 17:00:18 -03:00
Jason Rhinelander 3f8586af3d Update dev snapshot 2020-09-25 21:30:43 -03:00
Jason Rhinelander 2efb9ec729 Fix gbp conf for groovy 2020-09-25 21:30:21 -03:00
Jason Rhinelander fca38a1ea9 Merge branch 'dev' into ubuntu/groovy 2020-09-25 21:29:11 -03:00
Thomas Winget f37e619d7b add method to get current buffer from bt list/dict consumer 2020-09-25 13:23:23 -03:00
Jason Rhinelander 1ad9fb386a Don't build tests 2020-09-23 18:40:00 -03:00
Jason Rhinelander c20e9f26af Drop mapbox-variant 2020-09-23 17:45:17 -03:00
Jason Rhinelander 473e88f362 Add separate submodules step
Avoids needing ca-certificates in main build
2020-09-23 17:40:39 -03:00
Jason Rhinelander 7cac8a44b3 Drop i386 2020-09-23 17:34:27 -03:00
Jason Rhinelander daeeb9bc36 Groovy deb 2020-09-23 17:15:25 -03:00
Jason Rhinelander 5aa0f9e5a1 DRY 2020-09-23 17:12:39 -03:00
Jason Rhinelander e0d9dfc78a Remove old cmake flag 2020-09-23 14:35:00 -03:00
Jason Rhinelander 6775e29a80 Allow binary 2020-09-23 14:30:45 -03:00
Jason Rhinelander 876bca841b de-https 2020-09-23 14:27:59 -03:00
Jason Rhinelander 066192d675 fix typo 2020-09-23 14:18:35 -03:00
Jason Rhinelander 0ba2876f69 single apt-get update; include gpg pubkey 2020-09-23 14:17:36 -03:00
Jason Rhinelander 72c0892db8 Parallelize 2020-09-23 13:49:46 -03:00
Jason Rhinelander 1cdc52056e Remove mapbox variant dep 2020-09-22 14:02:37 -03:00
Jason Rhinelander 90c061bef6 Add repo & no recommends 2020-09-22 13:36:41 -03:00
Jason Rhinelander d97c4d6452 Make drone build debs 2020-09-22 12:10:30 -03:00
Jason Rhinelander 677b60f214 Merge remote-tracking branch 'origin/dev' into debian/sid 2020-09-21 21:29:12 -03:00
Jason Rhinelander 1a23f0b827 Update lokimq deb to dev snapshot 2020-09-21 21:26:30 -03:00
Jason Rhinelander 0ac1d48bc8 Update bundled libzmq version 2020-09-16 11:46:04 -03:00
Jeff Becker 0938e1fc53 allow changing uid as root 2020-09-08 14:48:51 -03:00
Jeff Becker 0c9eeeea43 allow an IPC socket to set which group it is owned by using SOCKET_GID similar to how STARTUP_UMASK is done. 2020-09-08 14:48:51 -03:00
Jason Rhinelander 9467c4682c Add C string bt_value ctor 2020-09-01 17:57:18 -03:00
Jason Rhinelander 8c28c52d41 inline constexpr lokimq constants 2020-08-13 15:55:51 -03:00
Jason Rhinelander faeeaa86d4 Add missing headers to installed header list 2020-08-13 12:38:46 -03:00
Jason Rhinelander 8d3ed4606f Drop const from _id
Makes the TaggedThreadID copyable.
2020-08-10 09:50:21 -03:00
Jason Rhinelander 30faadf01a Add serialization/deserialization of tuples and pairs
On the wire they are just lists, but this lets you put tuples onto and
pull tuples off of the wire.  (Also supports std::pair).

Supports direct serialization (via bt_serialize()/bt_deserialize()),
list/dict consumer deserialization, and conversion from a bt_value or
bt_list via a new bt_tuple() function.
2020-08-03 00:40:49 -03:00
Jason Rhinelander d8d1d8677c Replace visitor class with generic lambda 2020-08-03 00:40:49 -03:00
Jason Rhinelander e5cf174b83 Fix & add tests for send_option::data_parts(...)
data_parts() wasn't currently used anywhere, and was broken: it was
calling bt_deserialize which was just wrong.

This repurposes it to take iterators over strings (or string-like types)
and append those parts as message parts.

Also adds tests for it.
2020-07-20 14:37:01 -03:00
Jason Rhinelander af189a8d72 Wait for tagged workers
The `join()`s could hang if the tagged worker threads aren't ready yet,
so retry sending until they become routable.
2020-07-10 17:54:45 -03:00
Jason Rhinelander d2f852c217 Add test that destruction doesn't throw 2020-07-10 17:54:45 -03:00
Jason Rhinelander ee080e0550 Fix tagged workers not being properly shut down
If the LokiMQ object gets destroyed before having called `start()` then
we'd end up destroying the threads for tagged workers without joining
them.  This listens on the internal worker socket (normally the domain
of the proxy thread) and tells them to QUIT if such a destruction
happens.
2020-07-10 17:54:45 -03:00
Jason Rhinelander 7cd58e4677 Add missing header for BSD pthread naming 2020-07-06 12:04:51 -03:00
Jason Rhinelander b7a2adbb2d Add missing header for BSD pthread naming 2020-07-06 12:02:13 -03:00
Jason Rhinelander 9c54264321 Doc fix - remove "init" and update "start" doc
init() got removed during the tagged threads PR, but the documentation
didn't get updated.  Fixed it.
2020-06-30 18:48:09 -03:00
Jason Rhinelander 932bbb33d7 Allow injecting tasks into lokimq job queue
This allows mixing some outside task into the lokimq job queue for a
category (queued up with native LMQ requests for that category) for use
when there is some external process that is able to generate messages.

For example, the most immediate use for this is to allow an HTTP server
to handle incoming RPC requests and, as soon as they arrive, inject them
into LokiMQ's queue for the "rpc" category so that native LMQ rpc
requests and HTTP rpc requests share the same thread pool and queue.

These injected jobs bypass all of LokiMQ's authentication and response
mechanisms: that's up to the invoked callback itself to manage.

Injected tasks are somewhat similar to batch jobs, but unlike batch jobs
the are queued and prioritized as ordinary external LokiMQ requests.
(Batch jobs, in contrast, have a higher scheduling priority, no queue
limits, and typically a larger available thread pool).
2020-06-30 18:44:11 -03:00
Jason Rhinelander 07b31bd8a1 Take lokimq::address as connect_remote argument
Deprecates the existing connect_remote() that takes remote addr and
pubkey as separate strings, just taking a `address` instead (into which
the caller can set pubkey/curve data as desired).

Also slightly changes how `connect_remote()` works when called with a
string remote but no pubkey: that string is now an augmented
lokimq::address string so that it can use the various formats supported
by `lokimq::address`.

(This was meant to be included in the PR that added `address` but
apparently didn't get implemented.)
2020-06-30 13:09:34 -03:00
Jason Rhinelander 8a56b18cc6 More header fixes 2020-06-22 20:02:03 -03:00
Jason Rhinelander 1d56c3d44c Add missing header 2020-06-22 19:10:04 -03:00
Jason Rhinelander 66176d44d7 include fixes from iwyu 2020-06-22 16:23:04 -03:00
Jason Rhinelander 4e89dce5b6 Add "C" to languages
Without this CMAKE_C_COMPILER won't be set when building as a standalone
project, and we need that if we build the bundled libzmq.
2020-06-22 13:32:16 -03:00
Jason Rhinelander 0493f615b9 Remove debugging 2020-06-19 12:28:06 -03:00
Jason Rhinelander 843dbc4e2c Revert "Add missing system include workaround"
This reverts commit b634886c41.

It didn't solve the problem.
2020-06-14 03:35:20 -03:00