[ SYSTEM ]: Linux srv.persadacompanies.com 4.18.0-553.56.1.el8_10.x86_64 #1 SMP Tue Jun 10 05:00:59 EDT 2025 x86_64
[ SERVER ]: Apache | PHP: 8.4.19
[ USER ]: persadamedika | IP: 45.64.1.108
GEFORCE FILE MANAGER
/
usr
/
src
/
file_protector-1.1-1589
/
transport
/
UPLOAD:
NAME
SIZE
QUICK PERMS
ACTIONS
📄 device.c
1,233 B
SET
[ EDIT ]
|
[ DEL ]
📄 device.h
257 B
SET
[ EDIT ]
|
[ DEL ]
📄 exec_event.c
7,518 B
SET
[ EDIT ]
|
[ DEL ]
📄 exec_event.h
391 B
SET
[ EDIT ]
|
[ DEL ]
📄 exit_event.c
1,535 B
SET
[ EDIT ]
|
[ DEL ]
📄 exit_event.h
291 B
SET
[ EDIT ]
|
[ DEL ]
📄 fork_event.c
9,026 B
SET
[ EDIT ]
|
[ DEL ]
📄 fork_event.h
360 B
SET
[ EDIT ]
|
[ DEL ]
📄 fs_event.c
37,830 B
SET
[ EDIT ]
|
[ DEL ]
📄 fs_event.h
3,674 B
SET
[ EDIT ]
|
[ DEL ]
📄 message.c
22,398 B
SET
[ EDIT ]
|
[ DEL ]
📄 message.h
4,170 B
SET
[ EDIT ]
|
[ DEL ]
📄 ring.h
2,347 B
SET
[ EDIT ]
|
[ DEL ]
📄 set.h
1,911 B
SET
[ EDIT ]
|
[ DEL ]
📄 subtype.h
4,354 B
SET
[ EDIT ]
|
[ DEL ]
📄 thread_safe_path.h
2,330 B
SET
[ EDIT ]
|
[ DEL ]
📄 transport.c
77,315 B
SET
[ EDIT ]
|
[ DEL ]
📄 transport.h
5,314 B
SET
[ EDIT ]
|
[ DEL ]
📄 transport_id.h
1,789 B
SET
[ EDIT ]
|
[ DEL ]
DELETE SELECTED
[ CLOSE ]
EDIT: exit_event.c
/** @file @brief 'exit' event @details Copyright (c) 2017-2021 Acronis International GmbH @author Mikhail Krivtsov (mikhail.krivtsov@acronis.com) @since $Id: $ */ #include "exit_event.h" #include "debug.h" #include "message.h" #include "si_templates.h" #include "si_writer_common.h" #include "task_info_map.h" static void exit_event_with_alloc_flags(struct task_struct* tsk, bool nowait) { msg_t* msg; const uint32_t msg_size = SI_ESTIMATE_TMPL_SIZE(SI_COMMON_FIELDS); pid_t pid = tsk->pid; pid_t tgid = tsk->tgid; uint64_t unique_pid = make_unique_pid(tsk); msg = msg_new_with_alloc_flags(FP_SI_OT_NOTIFY_PROCESS_EXIT, 0, SI_CT_POST_CALLBACK, unique_pid, msg_size, nowait); if (msg) { si_property_writer_t writer; task_info_t* task_info = task_info_lookup(tgid, unique_pid); uint64_t event_uid = transport_global_sequence_next(); si_event_writer_init(&writer, &msg->event, msg_size); si_property_writer_write_common(&writer, event_uid, pid, tgid, task_info); si_event_writer_finalize(&msg->event, &writer); if (task_info) { task_info_put(task_info); } send_msg_async(msg); msg_unref(msg); } // This is not a strong guarantee that all other threads has exited but // it is as close as kernel can provide to us. if (tgid == pid) task_info_map_on_exit_event(tsk); } void exit_event_nowait(struct task_struct* tsk) { return exit_event_with_alloc_flags(tsk, true /*nowait*/); } void exit_event(struct task_struct* tsk) { return exit_event_with_alloc_flags(tsk, false /*nowait*/); }