c17fbd5abc
Fix poor_mans_glob, ~' for
$HOME' is only valid at the start of a path
2022-02-01 15:47:54 +01:00
f7b826841b
Log Thread-name in stacktrace
2022-01-26 00:17:49 +01:00
Mads Kiilerich
8bb91099c5
wscript: drop configure statements already present in the top level wscript
...
Avoid repeated pointless configure messages like:
Checking for 'g++' (C++ compiler!) : /usr/lib64/ccache/g++
Checking for 'gcc' (C compiler) : /usr/lib64/ccache/gcc
2022-01-22 22:19:03 +01:00
beb0a96f42
API to directly retrieve XML child content
2022-01-13 00:09:55 +01:00
30539716ca
Fix various Wcast-qual
...
g_atomic_int_get() requires a non-const pointer, however
many APIs are declared virtual const, so const_cast<> is
preferred over an API change.
2022-01-10 00:06:20 +01:00
1f5649ef28
Fix vfork edge-case
...
Calling c_str() after vfork is prohibited after a successful vfork.
Also the string needs to remain in scope until exec() completed.
2021-12-31 01:39:39 +01:00
b2f0d31630
Cont'd work on concurrent Signal, Connection destruction
...
see also 992c727959
and 7580d6aba7
Spin to prevent race between d'tor setting `in_dtor`
and acquiring Signal::_mutex.
2021-11-21 04:12:24 +01:00
992c727959
Cont'd work on concurrent Signal, Connection destruction
...
See also 7580d6aba7
2021-11-21 03:27:50 +01:00
7580d6aba7
Fix race condition when ~Signal and ~ScopedConnection run concurrently
...
Previously a deadlock was possible:
Thread 1:
~ScopedConnection ()
-> Connection::disconnect ()
takes Connection::_mutex <<<< 1
-> _signal->disconnect (shared_from_this ())
-> Signal::disconnect ()
takes Signal::_mutex <<<< 2
Thread 2:
~Signal ()
takes Signal::_mutex <<<< 2
-> Connection::signal_going_away ()
takes Connection::_mutex <<<< 1
2021-11-20 23:14:59 +01:00
9e763c2672
remove all dangling event-loop-precall code
2021-10-11 17:48:53 -06:00
a2a36de98f
Fix minor memory leak when querying Windows registry
2021-10-11 18:20:07 +02:00
ba2a2cb654
Implement natural-sort spaceship operator
2021-10-08 04:12:32 +02:00
64db1367bb
Change name of Stateful::apply_changes (PropertyBase) to the singular form.
...
Makes it slightly easier to read+parse what is happening. Yes, for a
Sequence property, the call could apply several changes, but overwhelmingly
it is used to apply a single change.
2021-09-25 16:49:51 -06:00
2ed1bdd243
Remove PropertyTemplate::call() and replace with code that uses ::set()
...
This makes undo/redo work correctly.
2021-09-25 16:49:51 -06:00
5a1201f05b
Fix duplicate libs
2021-09-19 23:39:51 +02:00
cb81b06a5d
Revert "Fix div/zero, allow switching backends"
...
This reverts commit 1288262ca7
.
2021-09-15 17:52:53 +02:00
1288262ca7
Fix div/zero, allow switching backends
...
When switching backends, the effective sample-rate is zero.
This only affects the butler thread (the only active thread when
stopped). The actual issue here is the butler calling
"non-realtime-stop" without a backend. However fixing 0/0
generally seems appropriate.
```
#0 in int_div_round<long>(long, long) (x=0, y=0) at ../libs/pbd/pbd/integer_division.h:36
#1 in Temporal::samples_to_superclock(int64_t, int) (samples=0, sr=0) at ../libs/temporal/temporal/superclock.h:39
#2 in Temporal::timepos_t::timepos_t(long) (this=0x7f94bc0a5890, s=0) at ../libs/temporal/temporal/timeline.h:55
#3 in ARDOUR::Automatable::non_realtime_locate(long) (this=0x55a12a980cc8, now=0) at ../libs/ardour/automatable.cc:421
#4 in ARDOUR::Route::non_realtime_locate(long) (this=0x55a12a980ae0, pos=0) at ../libs/ardour/route.cc:5462
#5 in ARDOUR::Session::non_realtime_stop(bool, int, bool&) (this=0x55a12e0cd000, abort=false, on_entry=1, finished=@0x7f94bc0a5e0f: true) at ../libs/ardour/session_transport.cc:1487
#6 in ARDOUR::Session::butler_transport_work(bool) (this=0x55a12e0cd000, have_process_lock=false) at ../libs/ardour/session_transport.cc:1153
#7 in ARDOUR::Butler::thread_work() (this=0x55a12f3b7000) at ../libs/ardour/butler.cc:222
#8 in ARDOUR::Butler::_thread_work(void*) (arg=0x55a12f3b7000) at ../libs/ardour/butler.cc:16
```
2021-09-11 04:54:40 +02:00
e057088195
remove unused, empty glib event source/callback code (was from an experiment during nutempo2 development)
2021-09-04 07:39:27 -06:00
John Emmas
dda7612479
A few visibility changes needed for linking to libpbd (when building with MSVC)
2021-09-04 12:35:44 +01:00
b4b4745bd4
Amend 55211b8d
(PRNG seed, use local address)
2021-08-16 04:59:10 +02:00
baf5a13f17
Update atomic/volatile compat
...
With glib 2.64, volatile gint produce annoying Wcast-qual
compiler warnings with mingw/gcc-8.
Even though the the build succeeds, and only glib 2.68+
requires non-volatile atomics this results in a much
cleaner build-log.
2021-08-16 04:26:55 +02:00
a3b28b4114
Move PCG RNG implementation out of header, update API
2021-08-15 16:03:01 +02:00
79baf356b9
Add realtime safe random number generator
2021-08-14 01:03:37 +02:00
b42727b92a
temporal: fix use of std::abs on 64 bit value
2021-08-13 12:51:34 -06:00
25ecc54208
possible minor optimizations of atomic loads in int62_t class
2021-08-13 12:51:34 -06:00
b96a2b1757
libpbd: provide a way to abort an RCU-based write_copy()->update() sequence
2021-08-13 12:51:32 -06:00
170541deb7
libpbd: fix implementation of int62_t::operator== and ::operator!=
...
Reversed logic error
2021-08-13 12:51:31 -06:00
bed76798f3
manual fixups after rebase against master (general libs edition)
2021-08-13 12:51:31 -06:00
4f6befea83
fix in62_t equality/inequality operators when used with mismatched arguments
2021-08-13 12:51:30 -06:00
b7d22508fa
Add blib event callback to BaseUI, with a virtual method to be overridden by derived classes.
2021-08-13 12:51:30 -06:00
179f2b2624
change value of int62_t::max to avoid flag bit being set
2021-08-13 12:51:30 -06:00
8dbbc1df54
library changes to get libtemporal setup at application startup
2021-08-13 12:51:30 -06:00
27c98adda9
alter API for MementoCommandBinder to allow future flexibility
2021-08-13 12:51:30 -06:00
09c84d1de8
add new GSource-derived object that can be attached to a Glib::MainContext to execute code before other sources have their dispatch() method invoked
2021-08-13 12:51:29 -06:00
b2a4fe1b50
likely temporary change to visibility inside PBD::int62.h
2021-08-13 12:51:29 -06:00
111f10638d
gcc 6.x requires <typeinfo> for typeid, it seems
2021-08-13 12:51:29 -06:00
0534d1fbb2
more improvements for int62_h based on rgareus' review
2021-08-13 12:51:28 -06:00
b7b4c99bc9
Temporal: add new arithmetic operators allowing more inter-operability of int64_t/int62_t; make operator int64_t explicit to avoid hidden use
2021-08-13 12:51:28 -06:00
788cd5456e
add additional methods allowing direct arithmetic operator expressions to be used with PBD::Property
2021-08-13 12:51:28 -06:00
709df7a08f
add operators for self-typed arithmetic
2021-08-13 12:51:28 -06:00
cb78984c63
add new int62.h header, which implements a generic 62bit-int-plus-flagbit type
2021-08-13 12:51:28 -06:00
c043156089
new header with an efficient implementation of integer division-rounding-to-nearest
2021-08-13 12:51:28 -06:00
8a41931ff4
Print note when stacktrace is too short
2021-07-23 01:43:18 +02:00
c5e5659022
Fix crash when demangled symbol is n/a
...
std::string foo (NULL) can throw a std::__throw_logic_error
which was not caught.
2021-07-19 18:26:22 +02:00
John Emmas
12e1c960b6
Add an extra dependency lib which was previously only needed for Debug builds
2021-07-15 09:30:08 +01:00
c92dfed706
Fix windows builds (stacktrace pthread debug)
2021-07-14 16:04:07 +02:00
46251c2068
Fix Windows debug builds
2021-07-14 15:07:26 +02:00
4651ec8382
Unconditionally enable stacktrace for windows builds
...
This also fixes an issue introduced 7d39205350
(duplicate variable name "levels".
2021-07-13 13:47:26 +02:00
7d39205350
Allow to skip top stacktrace frames
...
This is useful to hide the call of `PBD::stacktrace` itself.
2021-07-12 04:01:07 +02:00
a74b4e8ef0
No more wine
2021-07-03 19:07:25 +02:00