!lymvtcwDJ7ZA9Npq:lix.systems

Lix Development

422 Members
(Technical) development of Lix, the package manager, a Nix implementation. Please be mindful of ongoing technical conversations in this channel.142 Servers

Load older messages


SenderMessageTime
28 Jul 2025
@emilazy:matrix.orgemilybut of course it does require everything to be using capnproto already01:13:51
@emilazy:matrix.orgemily(I assume Unix socket and over-the-network transports will need to coexist anyway for remote builds, so another local transport doesn't seem like too much additional complexity)01:14:19
@jade_:matrix.orgjade_are mach ports api compatible by presenting fds?01:14:22
@jade_:matrix.orgjade_* are mach ports api compatible by presenting an fd based interface?01:15:12
@emilazy:matrix.orgemilythey're not stream sockets, no01:15:21
@emilazy:matrix.orgemilythey would need implementing as a backend in capnproto01:15:39
@jade_:matrix.orgjade_ah. that's kiiiinda annoying in that it's more darwin only code, but if we can keep it contained it might be okay01:16:34
@emilazy:matrix.orgemilyideally it's Darwin code upstream in capnproto01:16:46
@emilazy:matrix.orgemily(and then some brief glue around the server/client boundaries in Lix to select the right one based on platform, but presumably this already needs abstracting for local vs. remote RPC)01:17:45
@emilazy:matrix.orgemilybut that's why quickly wrapping the daemon to try default/user-initiated QoS may produce more immediately useful data :)01:18:22
@jade_:matrix.orgjade_yes indeed. some inspection of the apis in absence of docs for non-objc-extended-universe apps is required i think.01:19:07
@emilazy:matrix.orgemilywhich APIs are you talking about? all of this stuff is lower level than Objective-C AFAIK01:20:11
@emilazy:matrix.orgemilyMach ports are very low-level; XPC is the higher-level IPC system built on top of them but I think Mach ports would likely be the right integration layer for Cap'n Proto. they're just very raw C APis to talk directly to the poor microkernel screaming endlessly at the heart of XNU01:21:39
@emilazy:matrix.orgemily QoS stuff is, uh, "there's an undocumented posix_spawn helper" 01:21:52
@raitobezarius:matrix.orgraitobezariusdon't forget to document these ideas in the issue trcaker01:22:05
@jade_:matrix.orgjade_bazel post suggests that you can't set the policy except via posix_spawn so you can't do it to existing processes or if you are fork/exec. I think theyre mistaken on that.01:22:08
@emilazy:matrix.orgemilyyes I think that's probably not true01:22:21
@emilazy:matrix.orgemilybut not totally sure01:22:35
@jade_:matrix.orgjade_ I have found a setiopolicy_np but idk what it does 01:22:41
@emilazy:matrix.orgemilyI mean01:22:43
@emilazy:matrix.orgemily I'm pretty sure you can just taskpolicy around the daemon invocation in the launchd service 01:22:51
@emilazy:matrix.orgemilyfor a quick test01:22:54
@jade_:matrix.orgjade_or even just start a daemon outside launchd01:23:45
@jade_:matrix.orgjade_lets try that01:23:47
@jade_:matrix.orgjade_

To change the QoS of a pthread, call pthread_set_qos_class_self_np and pass it the new QoS to apply, as shown in Listing 10-9.
Listing 10-9Changing the QoS of a pthread

pthread_set_qos_class_self_np(QOS_CLASS_BACKGROUND,0);

01:28:35
@jade_:matrix.orgjade_yeah so that was simply untrue01:28:41
@jade_:matrix.orgjade_you can just change your qos class01:28:57
@emilazy:matrix.orgemilyI think tasks and thread priorities are different. maybe.01:29:18
@emilazy:matrix.orgemilymight be wrong.01:29:29
@emilazy:matrix.orgemilyprobably am wrong actually01:29:46

Show newer messages


Back to Room ListRoom Version: 10