Martin Quinson [Sat, 26 Jan 2019 19:33:12 +0000 (20:33 +0100)]
no need to remove the killed actor from canceled comm: refcounting is working
Martin Quinson [Sat, 26 Jan 2019 18:09:51 +0000 (19:09 +0100)]
refcounting on the src and dst actors of a comm
Martin Quinson [Sat, 26 Jan 2019 17:43:11 +0000 (18:43 +0100)]
The pimpl of s4u objects is const
But the one of activities and the cpu_pimpl of host (the codebase is
not ready yet).
Martin Quinson [Sat, 26 Jan 2019 10:02:31 +0000 (11:02 +0100)]
always cancel the comms of killed actors in the context of that actor (not in maestro)
Martin Quinson [Sat, 26 Jan 2019 08:49:26 +0000 (09:49 +0100)]
Always call process_on_exit in the actor context
Martin Quinson [Sat, 26 Jan 2019 08:48:59 +0000 (09:48 +0100)]
I'd like to kill that parmap.h at some point
Let's first reduce its visibility
Martin Quinson [Sat, 26 Jan 2019 08:28:25 +0000 (09:28 +0100)]
sonar was right: this if/else if was missing a else
Martin Quinson [Fri, 25 Jan 2019 07:10:00 +0000 (08:10 +0100)]
trick sonar 'identical sub-expression on both side of >'
Arnaud Giersch [Fri, 25 Jan 2019 14:20:18 +0000 (15:20 +0100)]
Restore final messages in Java examples.
They should be OK now that the termination of Java processes has been repaired.
These messages were removed by commit
d535c50c617ba838b99de4bd251a6ac076774d00
"Somehow fix the killing of actors in Java".
Arnaud Giersch [Fri, 25 Jan 2019 11:15:11 +0000 (12:15 +0100)]
Try to silent scan-build.
Arnaud Giersch [Fri, 25 Jan 2019 09:02:52 +0000 (10:02 +0100)]
[sonar] Don't use default capture for lambda.
Arnaud Giersch [Fri, 25 Jan 2019 08:39:47 +0000 (09:39 +0100)]
[sonar] Remove variadic functions.
Arnaud Giersch [Thu, 24 Jan 2019 11:04:01 +0000 (12:04 +0100)]
Change helper functions to static methods of StopRequest.
Arnaud Giersch [Thu, 24 Jan 2019 10:56:44 +0000 (11:56 +0100)]
Move StopRequest out of Context.
Using context::Context in fully qualified name was redundant.
Arnaud Giersch [Thu, 24 Jan 2019 22:28:11 +0000 (23:28 +0100)]
[sonar] Anonymize unused parameters.
Arnaud Giersch [Thu, 24 Jan 2019 21:47:41 +0000 (22:47 +0100)]
Help scan-build not seeing that "status" is initialized.
Also kill TODO: source is not known when it's irecv.
Martin Quinson [Thu, 24 Jan 2019 18:58:52 +0000 (19:58 +0100)]
sonar: don't catch exceptions we have no idea about
Arnaud Giersch [Wed, 23 Jan 2019 22:49:32 +0000 (23:49 +0100)]
Remove useless 2nd parameter "catch_block" for try_n_catch_stoprequest().
Martin Quinson [Thu, 24 Jan 2019 07:06:26 +0000 (08:06 +0100)]
sonar cleanups
- kill dead code
- stick to Java variable naming convention
- prefer isEmpty() to size()==0
Martin Quinson [Thu, 24 Jan 2019 06:48:55 +0000 (07:48 +0100)]
appveyor: don't test python. mingw cannot deal with pybind11 yet
Martin Quinson [Thu, 24 Jan 2019 06:45:50 +0000 (07:45 +0100)]
add a small comment about the memleak introduced here
Arnaud Giersch [Wed, 23 Jan 2019 22:22:58 +0000 (23:22 +0100)]
Stop using Context::StopRequest directly in libsimgrid-java.
Arnaud Giersch [Wed, 23 Jan 2019 22:17:48 +0000 (23:17 +0100)]
Define helper functions to use Context::StopRequest outside of libsimgrid.
Rationale: exceptions sometimes fail to pass correctly between shared
libraries, specially on FreeBSD or OS X.
Arnaud Giersch [Wed, 23 Jan 2019 20:35:53 +0000 (21:35 +0100)]
Hope to fix double-free: task may by destroyed on finalize().
Arnaud Giersch [Wed, 23 Jan 2019 20:36:58 +0000 (21:36 +0100)]
Merge remote-tracking branch 'github/master'
Augustin Degomme [Wed, 23 Jan 2019 14:38:33 +0000 (15:38 +0100)]
coverage : avoid matching cobertura pattern with jacoco files
Arnaud Giersch [Wed, 23 Jan 2019 13:34:56 +0000 (14:34 +0100)]
Use $PYTHON_EXECUTABLE in tesh files.
Arnaud Giersch [Wed, 23 Jan 2019 11:29:45 +0000 (12:29 +0100)]
Improve process termination in Java world.
Martin Quinson [Wed, 23 Jan 2019 06:58:21 +0000 (07:58 +0100)]
Merge branch 'master' of framagit.org:simgrid/simgrid
Martin Quinson [Wed, 23 Jan 2019 06:37:18 +0000 (07:37 +0100)]
Remove 2 (out of 3) horrible hacks around Java contexts
Previously, we did not even try to kill java contexts because we
failed to do so in some cases. Now, we try to kill them just like we
kill the other contexts, even if we don't always succeed.
One difficulty comes from the fact that some threads are created from
the C++ (from the deployment file) and then attached to the JVM, while
some others are created from Java directly (when calling new
Process().start()). The C++ vs Java stack is directly inverted between
cases, complicating the try/catch logic.
In practice, in this changeset, we try harder to convert between the
C++ StopRequest and the Java ProcessKilledError at the language
boundaries.
Also, we don't assert that JavaThread::stop() can actually detach the
thread: it won't for threads that are born in Java because their Java
stack was not unwinded yet. So throw a ProcessKilledError for that.
This is not prefect either since we still need to brutally kill the
JVM after the simulation using exit(0). I added some debug functions
to get more information. Just comment the first call to exit(0) in
jmsg.cpp to see the state of all user threads that we failed to
destroy.
They are all in the C++ world, without any [Java] stack, not blocked
on any Java synchronization object. I suspect that the system thread
is terminated, but the C++ std::thread object is still referenced
somewhere, preventing it from being garbage collected. That's weird
that the JVM still waits for them before ending (and thus mandating
the last the Horrible Hack -- exit(0) in the C++ side of the JVM
system process).
Gosh this is complicated. I'd love to have something like pybind11
dealing with all that shit automatically...
Arnaud Giersch [Tue, 22 Jan 2019 22:07:43 +0000 (23:07 +0100)]
Fix++
Got:
> ctest --output-on-failure -R 'java|python'
> 'python'' is not recognized as an internal or external command,
> operable program or batch file.
> Command exited with code 255
Arnaud Giersch [Tue, 22 Jan 2019 21:56:22 +0000 (22:56 +0100)]
Fix ctest invocation on appveyor.
Arnaud Giersch [Tue, 22 Jan 2019 21:42:09 +0000 (22:42 +0100)]
Last attempt for python/mingw.
Martin Quinson [Tue, 22 Jan 2019 21:21:37 +0000 (22:21 +0100)]
Merge branch 'master' of framagit.org:simgrid/simgrid
Martin Quinson [Tue, 22 Jan 2019 20:22:02 +0000 (21:22 +0100)]
Try to get python compiling even with MinGW
Martin Quinson [Tue, 22 Jan 2019 19:57:40 +0000 (20:57 +0100)]
appveyor: also build and test python
Arnaud Giersch [Tue, 22 Jan 2019 19:48:43 +0000 (20:48 +0100)]
Avoid to call Context::stop() again when a StopRequest was thrown.
It's already called just before the exception is thrown by the stop() method
(SwappedContext or ThreadContext).
Asan likes it better when it's called before throwing the exception.
Martin Quinson [Tue, 22 Jan 2019 19:54:20 +0000 (20:54 +0100)]
use the local copy of pybind11 if a local checkout exists
Martin Quinson [Tue, 22 Jan 2019 17:08:57 +0000 (18:08 +0100)]
appveyor: try to get pybind11
Martin Quinson [Mon, 21 Jan 2019 16:01:14 +0000 (17:01 +0100)]
Simplify the actor answer to iwannadie
Martin Quinson [Mon, 21 Jan 2019 15:41:36 +0000 (16:41 +0100)]
play safe, no pointers to the stack of dying actors
Martin Quinson [Mon, 21 Jan 2019 14:56:04 +0000 (15:56 +0100)]
step by step cleanup. This code drives me nuts
Arnaud Giersch [Tue, 22 Jan 2019 15:35:51 +0000 (16:35 +0100)]
Attempt to fix Python bindings on OS X.
See https://github.com/pybind/pybind11/issues/1272.
Arnaud Giersch [Tue, 22 Jan 2019 14:25:58 +0000 (15:25 +0100)]
Typo.
Arnaud Giersch [Tue, 22 Jan 2019 13:20:17 +0000 (14:20 +0100)]
Add missing issues to ChangeLog.
Arnaud Giersch [Mon, 21 Jan 2019 21:45:14 +0000 (22:45 +0100)]
Factorize some of the ASAN_ONLY code.
Also make asan_* members public to be visible from smx_ctx_wrapper
(ContextUnix,cpp).
Arnaud Giersch [Mon, 21 Jan 2019 15:15:13 +0000 (16:15 +0100)]
Activate test s4u-actor-exiting.
According to emptty it's failing, add note with set_tesh_properties().
Also fix distcheck.
Arnaud Giersch [Mon, 21 Jan 2019 14:58:05 +0000 (15:58 +0100)]
Simplify by using set_tesh_properties().
Arnaud Giersch [Mon, 21 Jan 2019 12:03:40 +0000 (13:03 +0100)]
Remove old cruft.
These functions and variables were removed a while ago.
Arnaud Giersch [Mon, 21 Jan 2019 11:57:01 +0000 (12:57 +0100)]
Avoid TSan false positives.
Arnaud Giersch [Mon, 21 Jan 2019 11:09:21 +0000 (12:09 +0100)]
Cosmetics.
Arnaud Giersch [Fri, 18 Jan 2019 09:01:58 +0000 (10:01 +0100)]
Update ChangeLog.
Martin Quinson [Mon, 21 Jan 2019 13:58:12 +0000 (14:58 +0100)]
further s/trace/profile/ cleanups
Martin Quinson [Mon, 21 Jan 2019 13:53:13 +0000 (14:53 +0100)]
Doc improvement
Martin Quinson [Mon, 21 Jan 2019 12:32:09 +0000 (13:32 +0100)]
start to s/trace/profile/ in the public API
Martin Quinson [Mon, 21 Jan 2019 10:43:19 +0000 (11:43 +0100)]
start renaming tmgr trace into profile
Martin Quinson [Mon, 21 Jan 2019 08:42:37 +0000 (09:42 +0100)]
Try to make a symbol easier to find for MC on exotic platforms
Martin Quinson [Mon, 21 Jan 2019 07:09:17 +0000 (08:09 +0100)]
Fix non-java tests :(
Martin Quinson [Sun, 20 Jan 2019 21:55:40 +0000 (22:55 +0100)]
ctx: move some bits to a private header and reduce the exposure of src/internal_config.h
Martin Quinson [Sun, 20 Jan 2019 21:25:16 +0000 (22:25 +0100)]
cosmetics in UCtx: hide one internal function and inline another
Martin Quinson [Sun, 20 Jan 2019 20:41:27 +0000 (21:41 +0100)]
In C++, classes don't need a name because they have a class
Martin Quinson [Sun, 20 Jan 2019 18:44:10 +0000 (19:44 +0100)]
thread_local fields must be static, no need to move to the factory
Martin Quinson [Sun, 20 Jan 2019 17:09:13 +0000 (18:09 +0100)]
kill an unused function
Martin Quinson [Sun, 20 Jan 2019 11:19:38 +0000 (12:19 +0100)]
s/process/actor/ A lot remains TBD about it
Martin Quinson [Sun, 20 Jan 2019 00:40:26 +0000 (01:40 +0100)]
More ints converted as boolean
Martin Quinson [Sun, 20 Jan 2019 00:33:37 +0000 (01:33 +0100)]
new (failing) example about on_exit and on_destruction
Martin Quinson [Sun, 20 Jan 2019 00:24:11 +0000 (01:24 +0100)]
bools are not ints anymore
Martin Quinson [Sun, 20 Jan 2019 00:11:12 +0000 (01:11 +0100)]
useless cleanups
Martin Quinson [Sat, 19 Jan 2019 22:18:07 +0000 (23:18 +0100)]
Fix a race condition in SwappedCtx parallel exec
The protection in set_maestro was failing to detect between the real
maestro and the working threads of the parmal. This is now fixed
according to helgrind.
Also, refactor things a bit by moving this set_maestro call directly
into the SwappedCtx constructor. Much less of a shotgun surgery :)
Arnaud Giersch [Thu, 17 Jan 2019 08:43:23 +0000 (09:43 +0100)]
Hide usage of free() to Sonar.
Arnaud Giersch [Thu, 17 Jan 2019 08:21:51 +0000 (09:21 +0100)]
Remove unused bits from mmalloc.
Martin Quinson [Thu, 17 Jan 2019 00:27:03 +0000 (01:27 +0100)]
fix MC on FreeBSD
Arnaud Giersch [Wed, 16 Jan 2019 22:55:38 +0000 (23:55 +0100)]
Fix paths.
Arnaud Giersch [Wed, 16 Jan 2019 20:58:48 +0000 (21:58 +0100)]
Kill unused example simdag/goal_test.
Arnaud Giersch [Wed, 16 Jan 2019 22:48:23 +0000 (23:48 +0100)]
Typo².
Martin Quinson [Wed, 16 Jan 2019 22:29:53 +0000 (23:29 +0100)]
Revert "Disable parallel executions with non-thread contexts under Tsan."
I have the feeling that the problem is actually in the parallel exec
of swapped factories, not in TSan.
This reverts commit
019d8784441a673767fd76b20a6283b965ead239.
Arnaud Giersch [Wed, 16 Jan 2019 20:58:48 +0000 (21:58 +0100)]
Fix memleak.
Arnaud Giersch [Wed, 16 Jan 2019 21:41:58 +0000 (22:41 +0100)]
Typo.
Arnaud Giersch [Wed, 16 Jan 2019 20:21:16 +0000 (21:21 +0100)]
Replace macros by C++ constructs.
Martin Quinson [Wed, 16 Jan 2019 21:57:19 +0000 (22:57 +0100)]
Merge branch 'master' of framagit.org:simgrid/simgrid
Arnaud Giersch [Wed, 16 Jan 2019 17:55:21 +0000 (18:55 +0100)]
SET_TESTS_PROPERTIES Can not find test to add properties to.
Test stack-overflow-thread has been removed.
Arnaud Giersch [Wed, 16 Jan 2019 16:36:54 +0000 (17:36 +0100)]
Drop xbt_os_mutex_* functions.
Arnaud Giersch [Wed, 16 Jan 2019 16:31:28 +0000 (17:31 +0100)]
Use standard C++ mutex.
Recursive because it was recursive before.
See commit
c0f0866d02664ad515441a5294f95c6b7d8b6fc1
"Fix the race condition in _xbt_log_cat_init()."
Arnaud Giersch [Wed, 16 Jan 2019 14:09:36 +0000 (15:09 +0100)]
Build log module as C++.
The goal is to use C++ mutex.
Arnaud Giersch [Wed, 16 Jan 2019 15:59:58 +0000 (16:59 +0100)]
Fix asserts.
Arnaud Giersch [Wed, 16 Jan 2019 10:30:41 +0000 (11:30 +0100)]
Struct xbt_os_thread_t is not used anymore.
Arnaud Giersch [Wed, 16 Jan 2019 10:29:12 +0000 (11:29 +0100)]
Remove useless wrapper around pthread_atfork().
Arnaud Giersch [Wed, 16 Jan 2019 10:24:52 +0000 (11:24 +0100)]
Include is not needed anymore. Remove.
Arnaud Giersch [Wed, 16 Jan 2019 10:06:55 +0000 (11:06 +0100)]
Disable stack-overflow test with threads.
Stack protection (setstacksize/setguardsize) have been removed.
Martin Quinson [Wed, 16 Jan 2019 09:40:19 +0000 (10:40 +0100)]
cosmetics
Arnaud Giersch [Wed, 16 Jan 2019 09:19:30 +0000 (10:19 +0100)]
Java examples have moved.
Arnaud Giersch [Mon, 14 Jan 2019 20:41:56 +0000 (21:41 +0100)]
Test for msg-task-priority is still present; run it for coverage.
Arnaud Giersch [Mon, 14 Jan 2019 14:10:50 +0000 (15:10 +0100)]
Add dependency to build tests for make check.
Martin Quinson [Wed, 16 Jan 2019 07:44:31 +0000 (08:44 +0100)]
Kill xbt_os_thread_atfork: tesh is not native but python now
Martin Quinson [Wed, 16 Jan 2019 07:43:31 +0000 (08:43 +0100)]
cleanups on my disk
Martin Quinson [Wed, 16 Jan 2019 07:29:38 +0000 (08:29 +0100)]
Linux and FreeBSD don't agree on the type name, bummers
Martin Quinson [Wed, 16 Jan 2019 07:19:47 +0000 (08:19 +0100)]
fix the fix for FreeBSD (hopefully)
Martin Quinson [Wed, 16 Jan 2019 07:14:49 +0000 (08:14 +0100)]
fix FreeBSD builds
Martin Quinson [Wed, 16 Jan 2019 06:41:47 +0000 (07:41 +0100)]
woops, plug a memleak
Martin Quinson [Tue, 15 Jan 2019 23:56:48 +0000 (00:56 +0100)]
Drop xbt_os_thread_t