The only possibility I see for a problem on that line is:
the
pointer variable is probably NULL or has been subject to arithmetic change (++ or --), which usually called an off-by-one error, or the mutex variable was never initalized to NULL to start with.
The problem is the pointer.
FWIW:
I do not see where you release the mutex after you call pthread_mutex_trylock and it returns success...
This User Gave Thanks to jim mcnamara For This Post:
Can anyone explain me how to use pthread_key_create() , pthread_setspecific(), pthread_getspecific() and pthread_key_delete () routines in pthreads.
Kindly state by an example. (3 Replies)
When run it, segment fault.
What is wrong?
#include <stdio.h>
#include <stdlib.h>
const int max =20;
//****************************************************
// Input Matrix
//****************************************************
void inMatrixAA(int *AA, int row, int col)... (9 Replies)
Hi!
I'm linking my hpux code using -lpthread (gcc), yet it references libpthread_tr.1,
the debug version of the pthread lib. How do I force it to use pthreads?
Thanks, :) (3 Replies)
Hi all
In the ltp-posix test,there is a case in open_posix_testsuite\conformance\interfaces\timer_gettime\speculative/6-1.c
I run the above code,it will has a segment fault, if I modify it to below,it works well
Anybody can tell me why? (1 Reply)
Hi,
Whether the following piece of code is placed in the read-only memory of code (text) segment or data segment?
char *a = "Hello";
I am getting two different answers while searching in google :( that's why the confusion is (7 Replies)
I always get segment fault, why? can sb help me and modify it, I have spend on much time on
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h>
#include <string.h>
#define MAX 10
pthread_t thread;
void *thread1()
{
int *a;
int i, n;
... (1 Reply)
I use a binary name (ie polo) it gets some parameter , so for debugging normally i do this :
i wrote script for watchdog my app (polo) and check every second if it's not running then start it , the problem is , if my app , remain in state of segmentation fault for a while (ie 15 ... (6 Replies)
I am trying to reverse complement DNA sequence (string) with a short c++ code using boost library. Code was compiled without any warning/error, but ran into Segmentation fault.
My guess is the function to return a vector, but not sure.
#include <iostream>
#include <fstream>
#include <string>... (14 Replies)
Hello,
This function was copied into my code, which was compiled without error/warning, but when executed there is always Segmentation fault at the end after the output (which seems correct!):
void get_hashes(unsigned int hash, unsigned char *in)
{
unsigned char *str = in;
int pos =... (7 Replies)
Discussion started by: yifangt
7 Replies
LEARN ABOUT OSF1
pthread_mutex_trylock
pthread_mutex_trylock(3) Library Functions Manual pthread_mutex_trylock(3)NAME
pthread_mutex_trylock - Attempts to lock the specified mutex, without waiting if already locked.
LIBRARY
DECthreads POSIX 1003.1c Library (libpthread.so)
SYNOPSIS
#include <pthread.h>
int pthread_mutex_trylock(
pthread_mutex_t *mutex);
STANDARDS
Interfaces documented on this reference page conform to industry standards as follows:
IEEE Std 1003.1c-1995, POSIX System Application Program Interface
PARAMETERS
Mutex to be locked.
DESCRIPTION
This routine attempts to lock the mutex specified in the mutex argument. When a thread calls this routine, an attempt is made to immedi-
ately lock the mutex. If the mutex is successfully locked, this routine returns zero (0) and the calling thread becomes the mutex's current
owner. If the specified mutex is locked when a thread calls this routine, the calling thread does not wait for the mutex to become avail-
able.
The behavior of this routine is as follows: For a normal, default, or errorcheck mutex: if the mutex is locked by any thread (including the
calling thread) when this routine is called, this routine returns [EBUSY] and the calling thread does not wait to acquire the lock. For a
normal or errorcheck mutex: if the mutex is not owned, this routine returns zero (0) and the mutex becomes locked by the calling thread.
For a recursive mutex: if the mutex is owned by the calling thread, this routine returns zero (0) and the mutex lock count is incremented.
(To unlock a recursive mutex, each call to pthread_mutex_trylock(3) must be matched by a call to pthread_mutex_unlock(3).)
Use the pthread_mutexattr_settype(3) routine to set the mutex type attribute (normal, default, recursive, or errorcheck).
RETURN VALUES
If an error condition occurs, this routine returns an integer value indicating the type of error. Possible return values are as follows:
Successful completion. The mutex is already locked; therefore, it was not acquired. The value specified by mutex is not a valid mutex.
ERRORS
None
RELATED INFORMATION
Functions: pthread_mutexattr_settype(3), pthread_mutex_destroy(3), pthread_mutex_init(3), pthread_mutex_lock(3), pthread_mutex_unlock(3)
Manuals: Guide to DECthreads and Programmer's Guide
delim off
pthread_mutex_trylock(3)