@Aaronontheweb one of my coworkers just showed me some AppDomain stuff. For the multinode tests wouldn't it be easier to load the child nodes up in their own app domain? It would allow us to attach a debugger alot easier
Aaron Stannard
@Aaronontheweb
@annymsMthd you can use the Child Process Debugger in Visual Studio to do the same thing
but the guy you should talk to about redoing the MultiNodeTestRunner is @smalldave
Joshua Benjamin
@annymsMthd
rgr
Aaron Stannard
@Aaronontheweb
let me get you the download link for the multi-node test runner
to answer your question though, I don't know what the downsides would be of using an AppDomain - part of me think it's a better idea to leave this stuff as-is and let each node have its own independent process-level resources
but don't all .NET processes share the same threadpool anyway?
i.e. isn't the CLR threadpool a shared resource across all of them? or is that not right?
ok, nevermind - CLR Threadpool and Threads: unique per process, but each AppDomain gets its own FIFO queue for work items
finally
_
Nikita Tsukanov
@kekekeks
Ehm, you just can't share a thread across processes. Whether ThreadPool is shared between AppDomains depends on CLR host. I. e. custom CLR host can even run multiple CLR threads on one native thread ( see https://msdn.microsoft.com/en-us/library/74169f59.aspx )
Haven't seen such CLR hosts, but still
Aaron Stannard
@Aaronontheweb
@kekekeks yeah I forgot my basic computer organization stuff this morning
thread is a resource of the process
should have been obvious but I drank a lot of wine last night
Nikita Tsukanov
@kekekeks
BTW, on Linux threads are processes that share address space and file descriptors
Aaron Stannard
@Aaronontheweb
literally processes (like, would they show up on ~ ps) ?
Nikita Tsukanov
@kekekeks
They have PID and you can see them in htop
Aaron Stannard
@Aaronontheweb
ah got it, so they're implemented as just what - micro processes effectively?
Nikita Tsukanov
@kekekeks
Just regular processes
Aaron Stannard
@Aaronontheweb
but with shared address space and process-level resources as the parent
Nikita Tsukanov
@kekekeks
That's why you don't use calls like fork from Mono
I think it's implemented like namespaces (i. e. groups of processes that have different network stacks, process PID space, etc)
Aaron Stannard
@Aaronontheweb
looks like we accidentally run the tests for Akka.Cluster 3 times in our builds.... FAKE picks it up three times (because it also gets used inside the multinode testkit)
and our build runner crashes on one of those runs, after successfully completing the tests a previous time
that's good to know @kekekeks
same place each time - test 48 in Akka.Cluster causes a stackoverflow inside XUnit
Aaron Stannard
@Aaronontheweb
ah... figured out why
Natan Vivo
@nvivo
does akka.net supports this? can't see any "mailbox-requirements" in the source