<commit_before>// Module:  Log4CPLUS
// File:    threads.h
// Created: 6/2001
// Author:  <NAME>
//
//
// Copyright (C) <NAME>  All rights reserved.
//
// This software is published under the terms of the Apache Software
// License version 1.1, a copy of which has been included with this
// distribution in the LICENSE.APL file.
//

/** @file */

#ifndef _LOG4CPLUS_THREADS_HEADER_
#define _LOG4CPLUS_THREADS_HEADER_

#include <log4cplus/config.h>
#include <log4cplus/tstring.h>
#include <log4cplus/helpers/sleep.h>
#include <log4cplus/helpers/pointer.h>
#include <memory>


#ifndef LOG4CPLUS_SINGLE_THREADED
namespace log4cplus {
    namespace thread {

        /**
         * This is used to lock a mutex.  The dtor unlocks the mutex.
         */
        class LOG4CPLUS_EXPORT Guard {
        public:
            /** "locks" <code>mutex</code>. */
            Guard(LOG4CPLUS_MUTEX_PTR_DECLARE mutex) {
                LOG4CPLUS_MUTEX_ASSIGN( _mutex, mutex );
                LOG4CPLUS_MUTEX_LOCK( _mutex );
            }

            /** "unlocks" <code>mutex</code>. */
            ~Guard() { LOG4CPLUS_MUTEX_UNLOCK( _mutex ); }
        private:
            LOG4CPLUS_MUTEX_PTR_DECLARE _mutex;<commit_msg>Disabled copying of Guard objects.<commit_after>// Module:  Log4CPLUS
// File:    threads.h
// Created: 6/2001
// Author:  <NAME>
//
//
// Copyright (C) <NAME>  All rights reserved.
//
// This software is published under the terms of the Apache Software
// License version 1.1, a copy of which has been included with this
// distribution in the LICENSE.APL file.
//

/** @file */

#ifndef _LOG4CPLUS_THREADS_HEADER_
#define _LOG4CPLUS_THREADS_HEADER_

#include <log4cplus/config.h>
#include <log4cplus/tstring.h>
#include <log4cplus/helpers/sleep.h>
#include <log4cplus/helpers/pointer.h>
#include <memory>


#ifndef LOG4CPLUS_SINGLE_THREADED
namespace log4cplus {
    namespace thread {

        /**
         * This is used to lock a mutex.  The dtor unlocks the mutex.
         */
        class LOG4CPLUS_EXPORT Guard {
        public:
            /** "locks" <code>mutex</code>. */
            Guard(LOG4CPLUS_MUTEX_PTR_DECLARE mutex) {
                LOG4CPLUS_MUTEX_ASSIGN( _mutex, mutex );
                LOG4CPLUS_MUTEX_LOCK( _mutex );
            }

            /** "unlocks" <code>mutex</code>. */
            ~Guard() { LOG4CPLUS_MUTEX_UNLOCK( _mutex ); }

        private:
            LOG4CPLUS_MUTEX_PTR_DECLARE _mutex;
 
            // disable copy
            Guard(const Guard&);
            Guard& operator=(const Guard&);
{'fraction_non_alphanumeric': 0.11250490003920031, 'fraction_numerical': 0.01724813798510388, 'mean_word_length': 2.36231884057971, 'pattern_counts': {'":': 0, '<': 25, '<?xml version=': 0, '>': 25, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7240284', 'n_tokens_mistral': 884, 'n_tokens_neox': 852, 'n_words': 204}