mirror of
https://github.com/Ardour/ardour.git
synced 2026-01-09 15:15:41 +01:00
fix for #1503, crash on new session in write-protected dir
git-svn-id: svn://localhost/ardour2/trunk@1510 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
1e352b699e
commit
54f18f26d4
4 changed files with 35 additions and 23 deletions
|
|
@ -1866,15 +1866,20 @@ ARDOUR_UI::new_session (std::string predetermined_path)
|
|||
uint32_t nphysin = (uint32_t) new_session_dialog->input_limit_count();
|
||||
uint32_t nphysout = (uint32_t) new_session_dialog->output_limit_count();
|
||||
|
||||
build_session (session_path,
|
||||
session_name,
|
||||
cchns,
|
||||
mchns,
|
||||
iconnect,
|
||||
oconnect,
|
||||
nphysin,
|
||||
nphysout,
|
||||
engine->frame_rate() * 60 * 5);
|
||||
if (build_session (session_path,
|
||||
session_name,
|
||||
cchns,
|
||||
mchns,
|
||||
iconnect,
|
||||
oconnect,
|
||||
nphysin,
|
||||
nphysout,
|
||||
engine->frame_rate() * 60 * 5)) {
|
||||
|
||||
response = Gtk::RESPONSE_NONE;
|
||||
new_session_dialog->reset ();
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1973,7 +1978,8 @@ ARDOUR_UI::build_session (const string & path, const string & snap_name,
|
|||
|
||||
catch (...) {
|
||||
|
||||
error << string_compose(_("Session \"%1 (snapshot %2)\" did not load successfully"), path, snap_name) << endmsg;
|
||||
MessageDialog msg (string_compose(_("Could not create session in \"%1\""), path));
|
||||
msg.run ();
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -103,10 +103,12 @@ Session::start_butler_thread ()
|
|||
void
|
||||
Session::terminate_butler_thread ()
|
||||
{
|
||||
void* status;
|
||||
char c = ButlerRequest::Quit;
|
||||
::write (butler_request_pipe[1], &c, 1);
|
||||
pthread_join (butler_thread, &status);
|
||||
if (butler_thread) {
|
||||
void* status;
|
||||
char c = ButlerRequest::Quit;
|
||||
::write (butler_request_pipe[1], &c, 1);
|
||||
pthread_join (butler_thread, &status);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
|||
|
|
@ -1114,15 +1114,17 @@ Session::start_midi_thread ()
|
|||
void
|
||||
Session::terminate_midi_thread ()
|
||||
{
|
||||
MIDIRequest* request = new MIDIRequest;
|
||||
void* status;
|
||||
|
||||
request->type = MIDIRequest::Quit;
|
||||
|
||||
midi_requests.write (&request, 1);
|
||||
poke_midi_thread ();
|
||||
|
||||
pthread_join (midi_thread, &status);
|
||||
if (midi_thread) {
|
||||
MIDIRequest* request = new MIDIRequest;
|
||||
void* status;
|
||||
|
||||
request->type = MIDIRequest::Quit;
|
||||
|
||||
midi_requests.write (&request, 1);
|
||||
poke_midi_thread ();
|
||||
|
||||
pthread_join (midi_thread, &status);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
|||
|
|
@ -183,6 +183,8 @@ Session::first_stage_init (string fullpath, string snapshot_name)
|
|||
current_trans = 0;
|
||||
first_file_data_format_reset = true;
|
||||
first_file_header_format_reset = true;
|
||||
butler_thread = (pthread_t) 0;
|
||||
midi_thread = (pthread_t) 0;
|
||||
|
||||
AudioDiskstream::allocate_working_buffers();
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue