/usr/include/barry18/barry/threadwrap.h is in libbarry-dev 0.18.5-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | ///
/// \file threadwrap.h
/// RAII Wrapper for a single thread.
///
/*
Copyright (C) 2009, Nicolas VIVIEN
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License in the COPYING file at the
root directory of this project for more details.
*/
#ifndef __BARRY_THREADWRAP_H__
#define __BARRY_THREADWRAP_H__
#include "dll.h"
#include <pthread.h>
namespace Barry {
class BXEXPORT Thread
{
public:
struct CallbackData
{
void *(*callback)(Barry::Thread::CallbackData *data);
// user-accessible data
volatile bool stopflag;
void *userdata;
explicit CallbackData(void *userdata);
};
private:
pthread_t thread;
int m_socket;
CallbackData *m_data;
public:
// Note: the data pointer passed into callback is not the same
// as userdata. The data pointer is a pointer to CallbackData
// which will contain the userdata pointer.
Thread(int socket,
void *(*callback)(Barry::Thread::CallbackData *data),
void *userdata);
~Thread();
/// Sets stopflag in the callback data to true
void StopFlag();
};
} // namespace Barry
#endif
|