Hello RTLinux list,
I have the problem too.
I think that this message is only a warning, it is not critical.
When the process forks, its mapping is duplicated for the son,
but the mbuff structures are not.
How can we solve the problem ?
Thanks.
Denis
clint woodeast wrote:
> Hi all,
> I use mbuff module (v0.6.2) to share memory between user and
> kernel space.
> But after the allocation of mbuff memory, the user process
> does a fork(). And when the son dies, I have the message
> "closing unknown mbuff c23ed5a0"
> But the communication via mbuff works well.
> Is it a problem?
> Can we use mbuff and fork() in the same user process?
> Many thanks.
>
> Clint
>
> PS: code of the user process.
>
> volatile mbf_str_t *buf;
>
> unsigned char str[512];
>
> void father () {
> while (1) {
> printf("String to write :");
> scanf("%s", str);
> while (buf->sh_flg & SHM_WRITE) {
> printf("WAIT : buffer NOT free!\n");
> sleep(5);
> }
> memcpy((char *)buf->sh_msg, str, strlen(str));
> buf->sh_msg[strlen(str)] = 0;
> buf->sh_flg |= SHM_WRITE;
> if (str[0] == 'q') {
> break;
> }
> }
> mbuff_free(SHM_NAME, (void*)buf);
> return;
> }
>
> void son() {
> printf("Start son: buf = 0x%p \n", buf);
> sleep(5);
> printf("End son\n");
> exit(0);
> }
>
> int main (int argc,char *argv[]){
>
> pid_t pid;
>
> buf = (volatile mbf_str_t *)mbuff_alloc(SHM_NAME, SHM_SIZE);
> if (buf == NULL) {
> printf("mbuff_alloc failed\n");
> exit(2);
> }
> printf("adresse du pointeur : %p\n", buf);
>
> if ((pid = fork()) < 0) {
> perror("fork");
> exit(1);
> }
> if (pid == 0) {
> son();
> } else {
> printf("pid of son: %d\n", pid);
> father();
> }
> printf("End main\n");
> exit(1);
> }
>
> ________________________________________________________________________
> Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com
>
> -- [rtl] ---
> To unsubscribe:
> echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
> echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
> ---
> For more information on Real-Time Linux see:
> http://www.rtlinux.org/rtlinux/
-- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
---
For more information on Real-Time Linux see:
http://www.rtlinux.org/rtlinux/