| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
to make Coverity happy (CID 59838).
|
|
|
|
| |
x86_64.
|
| |
|
|
|
|
|
|
|
| |
and call to GetLastError throughout.
* bsd_mutex.cc: Ditto.
* sysv_sem.cc (semget): Replace %X __small_printf format specifier
with %llx.
|
|
|
|
|
|
|
|
|
|
|
| |
* Makefile.in (OBJS): Remove wincap.o.
* README: Don't mention 9x.
* bsd_mutex.cc (_mtx_unlock): Drop checking for 9x error codes.
* cygserver.cc (server_submission_loop::request_loop): Add FIXME
comment.
* wincap.cc: Remove.
* wincap.h: Remove.
* woutsup.h: Don't include wincap.h.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(msleep_max_cnt): Remove.
(msleep_arr): Remove.
(class msleep_sync_array): New class to encapsulate msleep/wakeup
thread synchronization.
(msleep_sync): New object pointer.
(msleep_init): Initialize new msleep_sync object.
(_mutex): Just call msleep_sync->enter() and msleep_sync->leave() for
thread synchronization. Improve debug output a bit more.
(wakeup): Just call msleep_sync->wakeup().
(wakeup_all): Whitespace fix.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* bsd_mutex.cc: Include stdlib.h, sys/msg.h and sys/sem.h.
(mtx_init): Initialize lock counter to 0.
(_mtx_lock): Increment and log mutex lock counter.
(mtx_owned): Add winpid argument. Return true only if mutex is
actually owned by process winpid.
(_mtx_assert): Add winpid argument accordingly.
(_mtx_unlock): Log owner and lock count.
(MSLEEP_MUTEX): Remove.
(MSLEEP_SEM): Ditto.
(MSLEEP_EVENT): Ditto.
(msleep_event_name): Ditto.
(msleep_cs): New global critical section.
(msleep_cnt): New global variable indicating msleep record usage.
(msleep_max_cnt): New global variable indicating msleep record size.
(msleep_arr): New global pointer to msleep records.
(msleep_init): Initialize msleep_cs. Allocate msleep_arr array.
(_msleep): Rewrite using new msleep_cs/msleep_arr based thread
synchronization. Don't be shy with debug output.
(wakeup): Rewrite using new msleep_cs/msleep_arr based thread
synchronization.
* bsd_mutex.h (struct mtx): Add lock counter for better debugging.
(mtx_owned): Declare with winpid argument.
(_mtx_assert): Ditto.
(mtx_assert): Define with winpid argument.
* cygserver.cc (version): Remove.
(SERVER_VERSION): New define, decoupling server version information
from source code control system.
(print_version): Simplify printing server version.
* process.cc (process::process): Fix wrong bracketing (and handle leak).
(process::~process): Only try to close _signal_arrived if valid.
* sysv_sem.cc: Include sys/smallprint.h.
(semundo_clear): Define with additional struct thread pointer argument.
Accomodate throughout.
(SEMUNDO_LOCKASSERT): Define with winpid argument. Accomodate
throughout.
(struct sem_undo): Define un_proc as pid_t on Cygwin. Accomodate
throughout.
(seminit): Improve debugging by adding the semid to the mutex name.
(semget): Correctly print key value as 64 bit hex value in debug
output.
(semexit_myhook): Remove Cygwin specific unlocking of mutexes owned
by exiting process. Keep semaphore global lock throughout whole
function to avoid races.
* sysv_shm.cc (GIANT_REQUIRED): Define empty on Cygwin. We know that
Giant is locked.
|
|
|
|
|
| |
* process.cc (process::process): Handle invalid signal_arrived values
more gracefully.
|
|
|
|
|
|
|
|
|
|
|
| |
(MSLEEP_MUTEX): New define for third parameter to msleep_event_name.
(MSLEEP_SEM): Ditto.
(MSLEEP_EVENT): Ditto.
(msleep_event_name): Add third parameter to allow multiple
synchronization objects per ident.
(_msleep): Implement new synchronization technique to make sure
that all threads have been woken up by a corresponding wakeup call.
(wakeup): Ditto.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2004-08-24. It should be unnecessary now.
* msg.cc (client_request_msg::serve): Release process critical
section as early as possible.
* sem.cc (client_request_sem::serve): Ditto.
* shm.cc (client_request_shm::serve): Ditto.
* process.cc: Use hold and release method calls instead of
EnterCriticalSection/LeaveCriticalSection calls throughout.
* process.h (_hold): Rename from hold. Take filename and linenumber
parameter for logging. Define matching hold macro.
(release): Ditto.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Eliminate use of _impure_ptr outside Cygwin.
* bsd_helper.cc: Include errno.h instead of cygerrno.h.
* bsd_mutex.cc : Ditto.
* client.cc: Ditto.
* cygserver.cc: Ditto.
* process.cc: Don't build functions inside Cygwin. Don't include
cygerrno.h. Don't set errno.
* transport_pipes.cc (SET_ERRNO): New define. Use througout.
* transport_sockets.cc (SET_ERRNO): Ditto.
(GET_ERRNO): Ditto.
|
| |
|
| |
|
|
|
|
| |
entering mutex. Turn order of conditional for better readability.
|
|
|
|
| |
* bsd_mutex.cc: Ditto.
|
| |
|
|
|
|
|
| |
(set_priority): Ditto. Fix formatting.
(_msleep): Cleanup obj formatting. Rearrange obj order.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* client.cc: Include sigproc.h.
* msg.cc (client_request_msg::serve): Accomodate third parameter to
process::process.
* sem.cc (client_request_sem::serve): Ditto.
* shm.cc (client_request_shm::serve): Ditto.
* process.cc (process::process): Duplicate signal_arrived into
Cygserver process space.
(process::~process): Close _signal_arrived handle.
(process_cache::process): Add signal_arrived handling.
* process.h (process::process): Add signal_arrived parameter.
(process:signal_arrived): New read accessor.
(process:_signal_arrived): New member.
(process_cache::process): Add signal_arrived parameter.
|
|
throughout.
* Makefile.in: Accomodate all new files and name changes.
Add a *.d dependency.
(sbindir): Add.
(etcdir): Drop in favor of more appropriate sysconfdir definition.
(sysconfdir): Add.
(CXXFLAGS): Add -MMD flag. Add SYSCONFDIR definition.
(.SUFFIXES): Add.
(install): Add action items.
(libclean): New target.
(fullclean): Ditto.
* bsd_helper.cc: New file.
* bsd_helper.h: Ditto.
* bsd_log.cc: Ditto.
* bsd_log.h: Ditto.
* bsd_mutex.cc: Ditto.
* bsd_mutex.h: Ditto.
* client.cc: Rearrange to build as less as possible if
__INSIDE_CYGWIN__.
(client_request::handle_request): Add Message Queue and Semaphore
handling.
* cygserver.cc: Rearrange to build as less as possible if
__INSIDE_CYGWIN__. Use new debug/log/panic logging functions.
(DEF_CONFIG_FILE): New definition for configuration file. Use
throughout.
(getfunc): Remove.
(__cygserver__printf): Remove.
(client_request_attach_tty::serve): Return error if impersonation
fails.
(print_usage): Pump up help message.
(print_version): Add output of default configuration file.
(main): Accommodate new options. Allow overwrite of threading options
from config file. Call several new initialization functions. Drop
printing dots. Don't define SIGHANDLE inline.
* cygserver.conf: New file.
* cygserver_process.h: Rename to process.h.
* cygserver_transport.h: Rename to transport.h.
* cygserver_transport_pipes.h: Rename to transport_pipes.h.
* cygserver_transport_sockets.h: Rename to transport_sockets.h.
* msg.cc: Rewrite.
* sem.cc: Rewrite.
* shm.cc: Rewrite.
* sysv_msg.cc: New file, derived from FreeBSD version 1.52.
* sysv_sem.cc: New file, derived from FreeBSD version 1.66.
* sysv_shm.cc: New file, derived from FreeBSD version 1.89.
* threaded_queue.cc: Rearrange to build as less as possible if
__INSIDE_CYGWIN__.
* transport.cc (transport_layer_base::impersonate_client): Define bool.
(transport_layer_base::revert_to_self): Ditto.
* transport.h (transport_layer_base::impersonate_client): Declare bool.
(transport_layer_base::revert_to_self): Ditto.
* transport_pipes.cc (transport_layer_pipes::transport_layer_pipes):
Don't call init_security.
(init_security): Remove.
(transport_layer_pipes::accept): Use global sec_all_nih.
(transport_layer_pipes::connect): Ditto.
(transport_layer_pipes::impersonate_client): Define bool.
(transport_layer_pipes::revert_to_self): Ditt.
* transport_pipes.h (transport_layer_pipes::impersonate_client): Declare
bool.
(transport_layer_pipes::revert_to_self): Ditto.
* woutsup.h: Include bsd compatibility headers.
(SIGHANDLE): Add definition.
(__cygserver__printf): Remove definition.
(__noop_printf): Ditto.
(debug_printf): Define using debug.
(syscall_printf): Define using log.
(system_printf): Ditto.
Drop all other _printf definitions.
|