#include "MagickCore/memory_.h"
#include "MagickCore/pixel-private.h"
#include "MagickCore/resource_.h"
+#include "MagickCore/semaphore.h"
#include "MagickCore/utility.h"
\f
/*
void
*elements;
+ SemaphoreInfo
+ *semaphore;
+
size_t
signature;
};
matrix_info->columns=columns;
matrix_info->rows=rows;
matrix_info->stride=stride;
+ matrix_info->semaphore=AcquireSemaphoreInfo();
synchronize=GetEnvironmentValue("MAGICK_SYNCHRONIZE");
if (synchronize != (const char *) NULL)
{
{
assert(matrix_info != (MatrixInfo *) NULL);
assert(matrix_info->signature == MagickSignature);
+ LockSemaphoreInfo(matrix_info->semaphore);
switch (matrix_info->type)
{
case MemoryCache:
default:
break;
}
+ UnlockSemaphoreInfo(matrix_info->semaphore);
+ RelinquishSemaphoreInfo(&matrix_info->semaphore);
return((MatrixInfo *) RelinquishMagickMemory(matrix_info));
}
\f
matrix_info->stride,matrix_info->stride);
return(MagickTrue);
}
+ LockSemaphoreInfo(matrix_info->semaphore);
count=ReadMatrixElements(matrix_info,i*matrix_info->stride,
matrix_info->stride,value);
+ UnlockSemaphoreInfo(matrix_info->semaphore);
if (count != (MagickOffsetType) matrix_info->stride)
return(MagickFalse);
return(MagickTrue);
matrix_info->stride,value,matrix_info->stride);
return(MagickTrue);
}
+ LockSemaphoreInfo(matrix_info->semaphore);
count=WriteMatrixElements(matrix_info,i*matrix_info->stride,
matrix_info->stride,value);
+ UnlockSemaphoreInfo(matrix_info->semaphore);
if (count != (MagickOffsetType) matrix_info->stride)
return(MagickFalse);
return(MagickTrue);