## NAME

ACE_LOCK_SOCK_Acceptor - Specialize `ACE_SOCK_Acceptor` to lock around `accept`;

## SYNOPSIS

    #include <ace/LOCK_SOCK_Acceptor.h>

    template<class ACE_LOCK>
    class ACE_LOCK_SOCK_Acceptor : public ACE_SOCK_Acceptor
    {
      public:
        int accept (
            ACE_SOCK_Stream &new_stream,
            ACE_Addr *remote_addr = 0,
            ACE_Time_Value *timeout = 0,
            int restart = 1,
            int reset_new_handle = 0
            ) const;
        ACE_LOCK &lock (void);
      protected:
        ACE_LOCK lock_;
    };

## DESCRIPTION

This class is necessary since some OS platforms (e.g., Solaris 2.5) do not allow multiple threads/processes to simultaneously call `accept` on the same listen-mode port/socket. Thus, we need to protect against multiple concurrent accesses by using the appropriate type of lock.

## PUBLIC MEMBERS

    int accept (
        ACE_SOCK_Stream &new_stream,
        ACE_Addr *remote_addr = 0,
        ACE_Time_Value *timeout = 0,
        int restart = 1,
        int reset_new_handle = 0
        ) const;

Accept the connection under the control of the `ACE_LOCK`.

    ACE_LOCK &lock (void);

Return a reference to the lock.

## PROTECTED MEMBERS

    ACE_LOCK lock_;

Type of locking mechanism.

## AUTHOR

James Hu and Irfan Pyarali

## LIBRARY

ace