[ [ros-dev] [ros-svn] [hbirr] 13963: Lock the kernel - Debug
traces ede 2 for Bug512]
Hartmut Birr
hartmut.birr at gmx.de
Wed Mar 16 19:00:55 CET 2005
Hartmut Birr schrieb:
>This means colinux creates many pipes. Our npfs driver allocates the
>memory from non paged pool and possible it does not limit the size of
>the pipe buffer. I'm not sure if colinux creates to much pipes or if
>there is anywhere a bug which prevents from closing unused pipes (in
>colinux or ros).
>
>
>
Hi Gerard,
can you add my little patch and check how many pipes are created when
colinux is started?
- Hartmut
-------------- next part --------------
M:\Sandbox\ros_work\reactos>set SVN_EDITOR=notepad
M:\Sandbox\ros_work\reactos>d:\programme\subversion\bin\svn.exe diff drivers\fs\np
Index: drivers/fs/np/create.c
===================================================================
--- drivers/fs/np/create.c (revision 14100)
+++ drivers/fs/np/create.c (working copy)
@@ -16,6 +16,8 @@
#define NDEBUG
#include <debug.h>
+static ULONG PipeCount = 0;
+
/* FUNCTIONS *****************************************************************/
static PNPFS_PIPE
@@ -451,6 +453,8 @@
}
InsertTailList(&DeviceExt->PipeListHead, &Pipe->PipeListEntry);
+ PipeCount++;
+ DPRINT1("PipeCount: %d\n", PipeCount);
KeUnlockMutex(&DeviceExt->PipeListLock);
}
@@ -460,9 +464,12 @@
if (Fcb->Data == NULL)
{
ExFreePool(Fcb);
-
if (NewPipe)
{
+ /*
+ * FIXME:
+ * Lock the pipelist and remove the pipe from the list.
+ */
RtlFreeUnicodeString(&Pipe->PipeName);
ExFreePool(Pipe);
}
@@ -592,6 +599,7 @@
RtlFreeUnicodeString(&Pipe->PipeName);
KeLockMutex(&DeviceExt->PipeListLock);
RemoveEntryList(&Pipe->PipeListEntry);
+ PipeCount--;
KeUnlockMutex(&DeviceExt->PipeListLock);
ExFreePool(Pipe);
}
More information about the Ros-dev
mailing list