hey charles!
is privfree() broken? it appears it chains the slots together,
but only the calling process will get a correct chain. the chain
head (privs) is shared (in bss) and seen by all process so the
others will get corrupted chains (chain link is private) no?
i wonder what the intended use f
On 5 September 2015 at 15:03, Giacomo Tesio wrote:
> For extra safety I added an assert(*p == nil) just after rfork, and after
> a few (apparently?) successful spawns, the assert fails.
The stack is a logical copy of the parent process's stack at rfork, even
with RFMEM, since the stack's not sh
it doesnt matter. p is a pointer to a pointer. the whole
idea of privalloc() is to give you a memory locaiton that
when *dereferenced* can yield different *values* under different
processes, tho the *address* is the same, so it can be passed
arround.
--
cinap
> May be my problem is that p is global in my case?
global variables are in the bss, and thus shared. p will have
the same value in each thread, but *p should point into the
stack, and thus the same virtual address will be mapped to
different physical pages of memory.
however, if *p is assigned t
Nice example thanks.
May be my problem is that p is global in my case?
Giacomo
Il 05/Set/2015 18:50, "erik quanstrom" ha scritto:
> by the way, the following program runs without asserting for me
> with or without the waits.
>
> - erik
>
> ---
>
> #include
> #include
>
> void
> task(void **p)
by the way, the following program runs without asserting for me
with or without the waits.
- erik
---
#include
#include
void
task(void **p)
{
assert(*p == nil);
*p = (void*)(uintptr)getpid();
}
void
spawn(void (*t)(void**), void **p)
{
int pid;
switch(pid = r
On Sat Sep 5 07:06:44 PDT 2015, giac...@tesio.it wrote:
> 2011-05-20 3:30 GMT+02:00 erik quanstrom :
uh, wow. i hope this wasn't my mailer dragging the past up.
> > one note is that while i'm aware of privalloc(2), i didn't use it. the
> > implementation doesn't appear correct for shared-memo
... and given getpid(2) implementation, a pid based table could be quite
expensive, since MyStruct is accessed very very often.
2015-09-05 16:03 GMT+02:00 Giacomo Tesio :
> 2011-05-20 3:30 GMT+02:00 erik quanstrom :
>
>> one note is that while i'm aware of privalloc(2), i didn't use it. the
>> i
2011-05-20 3:30 GMT+02:00 erik quanstrom :
> one note is that while i'm aware of privalloc(2), i didn't use it. the
> implementation doesn't appear correct for shared-memory procs.
> i think there are two issues
> - locking is unnecessary. the only preemptable unit of execution is
> a process an