Sha256: 2d2efc4df2301fefde58784dcbb47030ac9559523cf0287f48406ef2eba70d1c

Contents?: true

Size: 1.42 KB

Versions: 13

Compression:

Stored size: 1.42 KB

Contents

// Copyright (C) 2003  Davis E. King (davis@dlib.net)
// License: Boost Software License   See LICENSE.txt for the full license.
#ifndef DLIB_SYNC_EXTENSION_KERNEl_1_
#define DLIB_SYNC_EXTENSION_KERNEl_1_

#include "../threads.h"
#include "../algs.h"
#include "sync_extension_kernel_abstract.h"

namespace dlib
{

    template <
        typename base
        >
    class sync_extension_kernel_1 : public base
    {

        rmutex m;
        rsignaler s;

        public:

        sync_extension_kernel_1 () : s(m) {}

        template < typename T >
        sync_extension_kernel_1 (const T& one) : base(one),s(m) {}
        template < typename T, typename U >
        sync_extension_kernel_1 (const T& one, const U& two) : base(one,two),s(m) {}


        const rmutex& get_mutex(
        ) const { return m; }

        void lock (
        ) const { m.lock(); }

        void unlock (
        ) const { m.unlock(); }

        void wait (
        ) const { s.wait(); }

        bool wait_or_timeout (
            unsigned long milliseconds
        ) const { return s.wait_or_timeout(milliseconds); }
         
        void broadcast (
        ) const { s.broadcast(); }

        void signal (
        ) const { s.signal(); }

    };

    template <
        typename base
        >
    inline void swap (
        sync_extension_kernel_1<base>& a, 
        sync_extension_kernel_1<base>& b 
    ) { a.swap(b); }

}

#endif // DLIB_SYNC_EXTENSION_KERNEl_1_

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
dlib-1.2.2 ext/dlib-19.4/dlib/sync_extension/sync_extension_kernel_1.h
dlib-1.2.1 ext/dlib-19.4/dlib/sync_extension/sync_extension_kernel_1.h
dlib-1.2.0 ext/dlib-19.4/dlib/sync_extension/sync_extension_kernel_1.h
dlib-1.1.5 ext/dlib-19.4/dlib/sync_extension/sync_extension_kernel_1.h
dlib-1.1.4 ext/dlib-19.4/dlib/sync_extension/sync_extension_kernel_1.h
dlib-1.1.3 ext/dlib-19.4/dlib/sync_extension/sync_extension_kernel_1.h
dlib-1.1.2 ext/dlib-19.4/dlib/sync_extension/sync_extension_kernel_1.h
dlib-1.1.1 ext/dlib-19.4/dlib/sync_extension/sync_extension_kernel_1.h
dlib-1.1.0 ext/dlib-19.4/dlib/sync_extension/sync_extension_kernel_1.h
dlib-1.0.3 ext/dlib-18.13/dlib/sync_extension/sync_extension_kernel_1.h
dlib-1.0.2 ext/dlib-18.13/dlib/sync_extension/sync_extension_kernel_1.h
dlib-1.0.1 ext/dlib-18.13/dlib/sync_extension/sync_extension_kernel_1.h
dlib-1.0.0 ext/dlib-18.13/dlib/sync_extension/sync_extension_kernel_1.h