Call remove_process_locks when a process ends, fix declarations.
This commit is contained in:
parent
fc51a2680a
commit
cdcb203691
|
@ -59,7 +59,6 @@ extern int check_fd_events( struct fd *fd, int events );
|
||||||
extern void set_fd_events( struct fd *fd, int events );
|
extern void set_fd_events( struct fd *fd, int events );
|
||||||
extern obj_handle_t lock_fd( struct fd *fd, file_pos_t offset, file_pos_t count, int shared, int wait );
|
extern obj_handle_t lock_fd( struct fd *fd, file_pos_t offset, file_pos_t count, int shared, int wait );
|
||||||
extern void unlock_fd( struct fd *fd, file_pos_t offset, file_pos_t count );
|
extern void unlock_fd( struct fd *fd, file_pos_t offset, file_pos_t count );
|
||||||
extern int flush_cached_fd( struct process *process, obj_handle_t handle );
|
|
||||||
|
|
||||||
extern int default_fd_add_queue( struct object *obj, struct wait_queue_entry *entry );
|
extern int default_fd_add_queue( struct object *obj, struct wait_queue_entry *entry );
|
||||||
extern void default_fd_remove_queue( struct object *obj, struct wait_queue_entry *entry );
|
extern void default_fd_remove_queue( struct object *obj, struct wait_queue_entry *entry );
|
||||||
|
@ -73,6 +72,7 @@ extern int no_get_file_info( struct fd *fd );
|
||||||
extern void no_queue_async( struct fd *fd, void* apc, void* user, void* io_sb, int type, int count);
|
extern void no_queue_async( struct fd *fd, void* apc, void* user, void* io_sb, int type, int count);
|
||||||
extern void no_cancel_async( struct fd *fd );
|
extern void no_cancel_async( struct fd *fd );
|
||||||
extern void main_loop(void);
|
extern void main_loop(void);
|
||||||
|
extern void remove_process_locks( struct process *process );
|
||||||
|
|
||||||
inline static struct fd *get_obj_fd( struct object *obj ) { return obj->ops->get_fd( obj ); }
|
inline static struct fd *get_obj_fd( struct object *obj ) { return obj->ops->get_fd( obj ); }
|
||||||
|
|
||||||
|
|
|
@ -49,6 +49,7 @@ extern obj_handle_t find_inherited_handle( struct process *process, const struct
|
||||||
extern struct handle_table *alloc_handle_table( struct process *process, int count );
|
extern struct handle_table *alloc_handle_table( struct process *process, int count );
|
||||||
extern struct handle_table *copy_handle_table( struct process *process, struct process *parent );
|
extern struct handle_table *copy_handle_table( struct process *process, struct process *parent );
|
||||||
extern unsigned int get_handle_table_count( struct process *process);
|
extern unsigned int get_handle_table_count( struct process *process);
|
||||||
|
extern int flush_cached_fd( struct process *process, obj_handle_t handle );
|
||||||
|
|
||||||
extern void close_global_handles(void);
|
extern void close_global_handles(void);
|
||||||
|
|
||||||
|
|
|
@ -424,6 +424,7 @@ static void process_destroy( struct object *obj )
|
||||||
assert( list_empty( &process->thread_list ));
|
assert( list_empty( &process->thread_list ));
|
||||||
|
|
||||||
set_process_startup_state( process, STARTUP_ABORTED );
|
set_process_startup_state( process, STARTUP_ABORTED );
|
||||||
|
remove_process_locks( process );
|
||||||
if (process->console) release_object( process->console );
|
if (process->console) release_object( process->console );
|
||||||
if (process->parent) release_object( process->parent );
|
if (process->parent) release_object( process->parent );
|
||||||
if (process->msg_fd) release_object( process->msg_fd );
|
if (process->msg_fd) release_object( process->msg_fd );
|
||||||
|
|
Loading…
Reference in New Issue