Rename smx_process to ActorImpl
cosmetics
kill 3 more functions around processes - simcall_process_get_PID, simcall_process_get_PPID, SIMIX_process_get_PPID - SIMIX_process_get_PID() is still mandatory to the C parts of SMPI
kill 2 more empty functions: simcall_process_get_name & SIMIX_process_get_name
kill two useless calls: SIMIX_process_get_host & simcall_process_get_host
rename actor.hpp to Actor.hpp
[s4u] Allocate Actors on the heap and return ActorPtr
[simix] Do not deadlock when joining a process which is already dead This was implemented by adding a callback SIMIX_process_on_exit() but if the process is already dead, the callback is never called. If the process is dead, we return directly to the calling process without any callback.
[simix] Add warning about atomic operations
[simix] Add refcount to Process
[SMX] Alignment cosmetics.
Getting rid of C exceptions The goal if to used native C++ exception instead our own SLJL-based C exceptions: * this removes the problem of exception conversion between C and C++ context and the lack of interoperability of SimGrid THROW/TRY/CATCH with its C++ counterpart; * we can still throw exceptions from C; * but we can't catch exception from C anymore, you should use C++ instead if order to do that; Things to do afterwards: * remove exceptions from the C public APIs; * restore the multiple usage debugging; * fix the backtrace code and separate from the exception code in order to be able to add backtraces to any exception and get backtraces without generating exceptions; * add support for attaching backtraces to any exception; * attach context (baktraces and cause) everywhere;
Name parameters in function declarations
[mc] Fix remote access to the new Process structure
[simix] Wrap (xbt_main_func_t, argc, argv) in a std::function everywhere SIMIX_process_get_code() is a casuality of this refactoring: it does not make sens in this design.
[simix] Use simgrid::simix::args in MSG The main missing bit is the simcall.
[simix] C++-based ownership of process name and arguments * Process and ProcessArg now use a std::string instead of a a char*. A consequence it that there now no difference bewteen the "" name and the nullptr process name (only the former is possible). * simix::simgrid::args now always copy the arguments. * simix::simgrid::args now as a .to_argv() method used to copy its argv.
[simix] Rename s_smx_process_arg to simgrid::simix::ProcessArg
[simix] Use std::string for s_smx_process_arg
[simix] Remove SIMIX_process_create_from_wrapper()