[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r7732 - GNUnet/src/util/containers
From: |
gnunet |
Subject: |
[GNUnet-SVN] r7732 - GNUnet/src/util/containers |
Date: |
Thu, 2 Oct 2008 11:22:39 -0600 (MDT) |
Author: durner
Date: 2008-10-02 11:22:39 -0600 (Thu, 02 Oct 2008)
New Revision: 7732
Modified:
GNUnet/src/util/containers/bloomfilter.c
Log:
synchronize bloomfilter access, hopefully fixing #1381
Modified: GNUnet/src/util/containers/bloomfilter.c
===================================================================
--- GNUnet/src/util/containers/bloomfilter.c 2008-10-02 16:17:49 UTC (rev
7731)
+++ GNUnet/src/util/containers/bloomfilter.c 2008-10-02 17:22:39 UTC (rev
7732)
@@ -547,9 +547,17 @@
GNUNET_bloomfilter_get_raw_data (struct GNUNET_BloomFilter *bf,
char *data, unsigned int size)
{
+ if (NULL == bf)
+ return GNUNET_SYSERR;
+ GNUNET_mutex_lock (bf->lock);
+
if (bf->bitArraySize != size)
- return GNUNET_SYSERR;
+ {
+ GNUNET_mutex_unlock (bf->lock);
+ return GNUNET_SYSERR;
+ }
memcpy (data, bf->bitArray, size);
+ GNUNET_mutex_unlock (bf->lock);
return GNUNET_OK;
}
@@ -644,12 +652,19 @@
{
unsigned int i;
+ if (NULL == bf)
+ return GNUNET_YES;
+ GNUNET_mutex_lock (bf->lock);
if (bf->bitArraySize != size)
- return GNUNET_SYSERR;
+ {
+ GNUNET_mutex_unlock (bf->lock);
+ return GNUNET_SYSERR;
+ }
/* FIXME: we could do this 4-8x faster by
going over int/long arrays */
for (i = 0; i < size; i++)
bf->bitArray[i] |= data[i];
+ GNUNET_mutex_unlock (bf->lock);
return GNUNET_OK;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r7732 - GNUnet/src/util/containers,
gnunet <=