Skip to content

Commit

Permalink
Hold default msession as a ref
Browse files Browse the repository at this point in the history
  • Loading branch information
musm committed Aug 14, 2018
1 parent 65b1a83 commit e128c0e
Showing 1 changed file with 13 additions and 18 deletions.
31 changes: 13 additions & 18 deletions src/engine.jl
Original file line number Diff line number Diff line change
Expand Up @@ -72,31 +72,26 @@ end

# default session

default_msession = nothing
const default_msession_ref = Ref{MSession}()

function restart_default_msession(bufsize::Integer = default_output_buffer_size)
global default_msession
if default_msession !== nothing && default_msession.ptr != C_NULL
close(default_msession)
# this function will start an MSession if default_msession_ref is undefined or if the
# MSession has been closed so that the engine ptr is void
function get_default_msession()
if !isassigned(default_msession_ref) || default_msession_ref[].ptr == C_NULL
default_msession_ref[] = MSession()
end
default_msession = MSession(bufsize)
return nothing
return default_msession_ref[]
end


function get_default_msession()
global default_msession
if default_msession === nothing
default_msession = MSession()
end
return default_msession::MSession
function restart_default_msession(bufsize::Integer = default_output_buffer_size)
close_default_msession()
default_msession_ref[] = MSession(bufsize)
return nothing
end

function close_default_msession()
global default_msession
if default_msession !== nothing
close(default_msession)
default_msession = nothing
if isassigned(default_msession_ref) && default_msession_ref[].ptr !== C_NULL
close(default_msession_ref[])
end
return nothing
end
Expand Down

0 comments on commit e128c0e

Please sign in to comment.