13
0
Commit Graph

51 Commits

Author SHA1 Message Date
cf0904f752
Handle vfork/exec failure
Don't call atexit, exit without cleanup.
2020-10-31 22:33:10 +01:00
a9bd7b2848
Remove unused compile-time option to not use vfork 2020-10-31 22:30:45 +01:00
7896c30508
Fix cmdline parameter escape 2020-10-31 13:42:14 +01:00
c365c6cdb2
Set thread-names (libs) 2020-03-29 14:56:22 +02:00
b157e1a09a
Remove invalid error message
This clause is in NO_VFORK, vfork_exec_wrapper is irrelevant there
2019-11-09 06:30:46 +01:00
a8a699133e
Fix child-process communication (video monitor in particular)
103ef2ba08 introduced an API to write raw data (const void*)
to a child process, along with the previous API to
write (std::string const&)

VideoMonitor uses write_to_stdin("fixed text"), and g++
interprets this to use the (const void*) API instead
of the std::string, which breaks communication.
2019-11-09 06:28:55 +01:00
0301c47f6b
Update core library GPL boilerplate and (C) from git log 2019-08-03 15:53:17 +02:00
e76e18af96
Use exit-status macros for compatibility 2/3 2019-07-04 22:21:35 +02:00
86138d18f9
Remove extra quotes from meta-data
Arguments are passed as argp[] array to execve() and don't need to be
enclosed by quotes.
2019-03-26 22:12:48 +01:00
15cd1163fc
Pass stderr mode properly to vfork wrapper 2019-03-07 23:51:04 +01:00
8b5437301b
Close stderr of child processes on MacOS
This fixes a bug on some modern mac systems. Related to
setup_logging() changing stderr to use ASL and write to com.apple.console.

When a forked application writes to stderr while ASL is used,
the child is terminated for some reason.
2019-03-05 22:52:53 +01:00
e1ffe7857f
Use enum for exec stderr parameter (1/2) 2019-03-05 22:49:15 +01:00
7048d86d6c
Remove unused define 2019-02-26 03:49:02 +01:00
28f211c5d2
NO-OP: whitespace 2019-01-23 12:59:17 +01:00
87602e7fb3
system-exec read: allow 1 byte for null termination -- #7715 2019-01-23 12:44:10 +01:00
1759d1c9c9
Fix a tiny memory-leak when calling vfork 2018-11-29 02:06:42 +01:00
d169864b5b Prepare session-metadata export to external command 2018-11-20 23:56:12 +01:00
d18b247a05 Fix Windows and Mac Builds
* missing include for locale_to_utf8 (amend 4c6ff5f7e7)
* avoid void* arithemtic (amend 103ef2ba)
2018-11-19 12:54:07 +01:00
103ef2ba08 Add API to write raw data to child processes. 2018-11-19 02:26:43 +01:00
820bd0fe51 and another typo in d442190b 2016-02-14 00:10:41 +01:00
09167d3e59 fix typos in d442190b 2016-02-14 00:02:00 +01:00
d442190b8a slightly improved windows post-export hook support. 2016-02-13 23:12:50 +01:00
73245c6217 some half-baked support for windows command-arg substitutions 2016-02-13 17:04:11 +01:00
108528b63d amend d814acb - SystemExec/Export debugging 2016-02-13 01:39:41 +01:00
d814acbb8f add some debugging capability for users of SystemExec. Needs review. 2016-02-12 18:22:12 -06:00
eb6b4f4b15 fix crash on SystemExec::Terminate
if Terminated() connects in the same thread and deletes the class itself
the closure in interposer_thread() can fail.
2015-10-23 23:29:04 +02:00
22b07e0233 NOOP, remove trailing tabs/whitespace. 2015-10-05 16:17:49 +02:00
4dc63966f0 globally remove all trailing whitespace from ardour code base.
Paul Davis was responsible for introducing almost all of this.
2015-10-04 14:51:05 -04:00
e057b873b5 amend e09c620; now with semicolon :) 2015-08-03 23:09:51 +02:00
e09c62052d fix backslashes in quotes (windows), fixes VST scan 2015-08-03 23:06:08 +02:00
2b294f0b43 add a sanity check 2015-04-30 21:15:35 +02:00
ec01682714 -Wunused-function on windows 2014-11-23 21:01:39 +01:00
12025d4ffa possible fix for win SystemExec::wait()
if it does not help, use CREATE_NO_WINDOW and/or peek/pump messages :(
2014-07-11 17:03:55 +02:00
94e0841625 catch null vfork_exec_wrapper before it is too late 2014-07-11 09:58:45 -04:00
4b0933938f optimize SystemExec::output_interposer() 2014-07-06 23:44:48 +02:00
c03034b7d6 Make $PATH search in SystemExec actually work
Make searching of $PATH work when a SystemExec  is created from a
command-line, by making sure that argv[0] is set to the discovered path.
2014-07-05 21:47:49 +01:00
cd12698b9c Rename PBD::find_file_in_search_path to just PBD::find_file
saves a bit of typing and not necessary if you look at how it is used.
2014-06-25 12:40:10 -04:00
f0dbd6c085 Export dialog: tidy code, & remove some superfluous debug output
Remove some debug output, tidy up a few whitespace inconsistencies, use
DEBUG::Soundcloud in one more place, and zap a couple of unused variables.
2014-06-12 23:20:05 +01:00
724a69a8d5 Search $PATH for command when creating SystemExec from command line
When creating a SystemExec from a command-line, search $PATH for the
command to execute, so that post-export hooks don't need to specify a full
path.
2014-06-12 23:20:05 +01:00
3813c7afae increase system-exec timeouts for kill. 2014-06-05 02:22:13 +02:00
bc8ccea212 remove debug output from system_exec
remove the debug output from pbd/system_exec: it's of no further use, and
also breaks optimised builds.
2014-05-19 22:49:22 +01:00
5399425f53 Merge branch 'export-dialog' into cairocanvas
Fix merge conflicts in:
	gtk2_ardour/export_range_markers_dialog.cc
	gtk2_ardour/wscript
	libs/ardour/ardour/export_handler.h
	libs/ardour/system_exec.cc
	libs/pbd/pbd/system_exec.h
	libs/pbd/system_exec.cc
2014-05-19 20:54:36 +01:00
7c4259133d SystemExec: copy last argument from command line to argv[]
Make sure to copy any part of the command line after the last delimiter
to argv[] when creating a SystemExec with an escaped command line.
2014-05-18 20:49:58 +01:00
f31c84a742 close stdin as first attempt to terminate process cleanly. 2014-04-20 23:02:32 +02:00
3552c17b91 fix SystemExec for windows 2014-04-20 02:51:27 +02:00
543099afba rework SystemExec - use vfork wrapper (and lots of related stuff) 2014-03-13 16:58:07 +01:00
f6129ed0f4 prototype vfork exec-wrapper. 2014-03-11 15:48:41 +01:00
cfa94aeccc fix system-exec (wait for app to start) 2014-02-25 14:57:57 +01:00
1d39cf7543 move SystemExec to libpbd 2014-02-19 03:38:43 +01:00
e1562961c0 Add command-line parsing constructor to SystemExec
Add a new constructor to SystemExec which takes a complete command-line
and a map of substitutions for %<char>, and parses the command line,
taking account of some simple escape sequences and quoting.
2013-10-10 19:50:21 +01:00