Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
U
uniset2
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
UniSet project repositories
uniset2
Commits
e5d82bcb
Commit
e5d82bcb
authored
Jul 11, 2018
by
Pavel Vainerman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(UActivator): refactoring the program termination process
parent
410b0c2f
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
84 additions
and
50 deletions
+84
-50
PassiveLProcessor.cc
extensions/LogicProcessor/PassiveLProcessor.cc
+1
-1
MBExchange.cc
extensions/ModbusMaster/MBExchange.cc
+3
-3
MBSlave.cc
extensions/ModbusSlave/MBSlave.cc
+8
-7
SharedMemory.cc
extensions/SharedMemory/SharedMemory.cc
+13
-13
UNetExchange.cc
extensions/UNetUDP/UNetExchange.cc
+2
-2
UniExchange.cc
extensions/UniNetwork/UniExchange.cc
+1
-1
OmniThreadCreator.h
include/OmniThreadCreator.h
+1
-1
UniSetActivator.h
include/UniSetActivator.h
+7
-2
UniSetActivator.cc
src/Core/UniSetActivator.cc
+37
-14
UniSetObject.cc
src/Core/UniSetObject.cc
+8
-3
IOController.cc
src/Processes/IOController.cc
+1
-1
IONotifyController.cc
src/Processes/IONotifyController.cc
+1
-1
ProxyManager.cc
src/Processes/ProxyManager.cc
+1
-1
No files found.
extensions/LogicProcessor/PassiveLProcessor.cc
View file @
e5d82bcb
...
@@ -150,7 +150,7 @@ void PassiveLProcessor::sysCommand( const uniset::SystemMessage* sm )
...
@@ -150,7 +150,7 @@ void PassiveLProcessor::sysCommand( const uniset::SystemMessage* sm )
{
{
if
(
!
shm
->
waitSMreadyWithCancellation
(
smReadyTimeout
,
cannceled
)
)
if
(
!
shm
->
waitSMreadyWithCancellation
(
smReadyTimeout
,
cannceled
)
)
{
{
dcrit
<<
myname
<<
"(ERR): SM not ready. Terminated... "
<<
endl
;
dcrit
<<
myname
<<
"(ERR): SM not ready. Terminated... "
<<
endl
<<
flush
;
// std::terminate();
// std::terminate();
uterminate
();
uterminate
();
return
;
return
;
...
...
extensions/ModbusMaster/MBExchange.cc
View file @
e5d82bcb
...
@@ -3021,7 +3021,7 @@ namespace uniset
...
@@ -3021,7 +3021,7 @@ namespace uniset
if
(
devices
.
empty
()
)
if
(
devices
.
empty
()
)
{
{
mbcrit
<<
myname
<<
"(sysCommand): ************* ITEM MAP EMPTY! terminated... *************"
<<
endl
;
mbcrit
<<
myname
<<
"(sysCommand): ************* ITEM MAP EMPTY! terminated... *************"
<<
endl
<<
flush
;
// std::terminate();
// std::terminate();
uterminate
();
uterminate
();
return
;
return
;
...
@@ -3056,7 +3056,7 @@ namespace uniset
...
@@ -3056,7 +3056,7 @@ namespace uniset
if
(
!
isProcActive
()
)
if
(
!
isProcActive
()
)
{
{
mbcrit
<<
myname
<<
"(sysCommand): ************* don`t activate?! ************"
<<
endl
;
mbcrit
<<
myname
<<
"(sysCommand): ************* don`t activate?! ************"
<<
endl
<<
flush
;
uterminate
();
uterminate
();
return
;
return
;
}
}
...
@@ -3132,7 +3132,7 @@ namespace uniset
...
@@ -3132,7 +3132,7 @@ namespace uniset
<<
"(askSensors): Не дождались готовности(work) SharedMemory к работе в течение "
<<
"(askSensors): Не дождались готовности(work) SharedMemory к работе в течение "
<<
activateTimeout
<<
" мсек"
;
<<
activateTimeout
<<
" мсек"
;
mbcrit
<<
err
.
str
()
<<
endl
;
mbcrit
<<
err
.
str
()
<<
endl
<<
flush
;
// std::terminate(); // прерываем (перезапускаем) процесс...
// std::terminate(); // прерываем (перезапускаем) процесс...
uterminate
();
uterminate
();
return
;
return
;
...
...
extensions/ModbusSlave/MBSlave.cc
View file @
e5d82bcb
...
@@ -582,7 +582,7 @@ namespace uniset
...
@@ -582,7 +582,7 @@ namespace uniset
if
(
vaddr
.
empty
()
)
if
(
vaddr
.
empty
()
)
{
{
mbcrit
<<
"(execute_rtu): Unknown my modbus addresses!"
<<
endl
;
mbcrit
<<
"(execute_rtu): Unknown my modbus addresses!"
<<
endl
<<
flush
;
//std::terminate();
//std::terminate();
uterminate
();
uterminate
();
return
;
return
;
...
@@ -622,7 +622,7 @@ namespace uniset
...
@@ -622,7 +622,7 @@ namespace uniset
{
{
if
(
!
tcpserver
)
if
(
!
tcpserver
)
{
{
mbcrit
<<
myname
<<
"(execute_tcp): DYNAMIC CAST ERROR (mbslot --> ModbusTCPServerSlot)"
<<
std
::
endl
;
mbcrit
<<
myname
<<
"(execute_tcp): DYNAMIC CAST ERROR (mbslot --> ModbusTCPServerSlot)"
<<
std
::
endl
<<
flush
;
// std::terminate();
// std::terminate();
uterminate
();
uterminate
();
return
;
return
;
...
@@ -645,7 +645,7 @@ namespace uniset
...
@@ -645,7 +645,7 @@ namespace uniset
if
(
vaddr
.
empty
()
)
if
(
vaddr
.
empty
()
)
{
{
mbcrit
<<
"(execute_tcp): Unknown my modbus addresses!"
<<
endl
;
mbcrit
<<
"(execute_tcp): Unknown my modbus addresses!"
<<
endl
<<
flush
;
// std::terminate();
// std::terminate();
uterminate
();
uterminate
();
return
;
return
;
...
@@ -686,7 +686,8 @@ namespace uniset
...
@@ -686,7 +686,8 @@ namespace uniset
{
{
mbcrit
<<
myname
<<
"(execute_tcp): error run tcpserver: "
mbcrit
<<
myname
<<
"(execute_tcp): error run tcpserver: "
<<
tcpserver
->
getInetAddress
()
<<
tcpserver
->
getInetAddress
()
<<
":"
<<
tcpserver
->
getInetPort
()
<<
" err: not active.."
<<
endl
;
<<
":"
<<
tcpserver
->
getInetPort
()
<<
" err: not active.."
<<
endl
<<
flush
;
// std::terminate();
// std::terminate();
uterminate
();
uterminate
();
return
;
return
;
...
@@ -947,7 +948,7 @@ namespace uniset
...
@@ -947,7 +948,7 @@ namespace uniset
{
{
if
(
iomap
.
empty
()
)
if
(
iomap
.
empty
()
)
{
{
mbcrit
<<
myname
<<
"(sysCommand): iomap EMPTY! terminated..."
<<
endl
;
mbcrit
<<
myname
<<
"(sysCommand): iomap EMPTY! terminated..."
<<
endl
<<
flush
;
// std::terminate();
// std::terminate();
uterminate
();
uterminate
();
return
;
return
;
...
@@ -1049,8 +1050,8 @@ namespace uniset
...
@@ -1049,8 +1050,8 @@ namespace uniset
<<
"(askSensors): Не дождались готовности(work) SharedMemory к работе в течение "
<<
"(askSensors): Не дождались готовности(work) SharedMemory к работе в течение "
<<
activateTimeout
<<
" мсек"
;
<<
activateTimeout
<<
" мсек"
;
mbcrit
<<
err
.
str
()
<<
endl
;
mbcrit
<<
err
.
str
()
<<
endl
<<
flush
;
kill
(
SIGTERM
,
getpid
());
// прерываем (перезапускаем) процесс...
uterminate
();
throw
SystemError
(
err
.
str
());
throw
SystemError
(
err
.
str
());
}
}
...
...
extensions/SharedMemory/SharedMemory.cc
View file @
e5d82bcb
...
@@ -270,7 +270,7 @@ namespace uniset
...
@@ -270,7 +270,7 @@ namespace uniset
if
(
!
activated
)
if
(
!
activated
)
{
{
smcrit
<<
myname
<<
"(sysCommand): Don`t activate [timeout="
<<
activateTimeout
<<
" msec]! TERMINATE.."
<<
endl
;
smcrit
<<
myname
<<
"(sysCommand): Don`t activate [timeout="
<<
activateTimeout
<<
" msec]! TERMINATE.."
<<
endl
<<
flush
;
// std::terminate();
// std::terminate();
uterminate
();
uterminate
();
return
;
return
;
...
@@ -463,9 +463,9 @@ namespace uniset
...
@@ -463,9 +463,9 @@ namespace uniset
<<
") указан неверно ("
<<
") указан неверно ("
<<
it
.
getProp
(
"iotype"
)
<<
") должен быть 'AI'"
;
<<
it
.
getProp
(
"iotype"
)
<<
") должен быть 'AI'"
;
smcrit
<<
msg
.
str
()
<<
endl
;
smcrit
<<
msg
.
str
()
<<
endl
<<
flush
;
kill
(
getpid
(),
SIGTERM
);
uterminate
(
);
// throw NameNotFound
(msg.str());
throw
SystemError
(
msg
.
str
());
};
};
HeartBeatInfo
hi
;
HeartBeatInfo
hi
;
...
@@ -478,7 +478,7 @@ namespace uniset
...
@@ -478,7 +478,7 @@ namespace uniset
{
{
ostringstream
msg
;
ostringstream
msg
;
msg
<<
"(SharedMemory::readItem): дискретный датчик (heartbeat_ds_name) связанный с "
<<
it
.
getProp
(
"name"
);
msg
<<
"(SharedMemory::readItem): дискретный датчик (heartbeat_ds_name) связанный с "
<<
it
.
getProp
(
"name"
);
smwarn
<<
msg
.
str
()
<<
endl
;
smwarn
<<
msg
.
str
()
<<
endl
<<
flush
;
}
}
}
}
else
else
...
@@ -492,9 +492,9 @@ namespace uniset
...
@@ -492,9 +492,9 @@ namespace uniset
// Если уж задали имя для датчика, то он должен существовать..
// Если уж задали имя для датчика, то он должен существовать..
// поэтому завершаем процесс, если не нашли..
// поэтому завершаем процесс, если не нашли..
smcrit
<<
msg
.
str
()
<<
endl
;
smcrit
<<
msg
.
str
()
<<
endl
<<
flush
;
kill
(
getpid
(),
SIGTERM
);
uterminate
(
);
// throw NameNotFound
(msg.str());
throw
SystemError
(
msg
.
str
());
}
}
}
}
...
@@ -507,9 +507,9 @@ namespace uniset
...
@@ -507,9 +507,9 @@ namespace uniset
msg
<<
"(SharedMemory::readItem): НЕ УКАЗАН id для "
msg
<<
"(SharedMemory::readItem): НЕ УКАЗАН id для "
<<
it
.
getProp
(
"name"
)
<<
" секция "
<<
sec
;
<<
it
.
getProp
(
"name"
)
<<
" секция "
<<
sec
;
smcrit
<<
msg
.
str
()
<<
endl
;
smcrit
<<
msg
.
str
()
<<
endl
<<
flush
;
kill
(
getpid
(),
SIGTERM
);
uterminate
(
);
// throw NameNotFound
(msg.str());
throw
SystemError
(
msg
.
str
());
};
};
// без проверки на дублирование т.к.
// без проверки на дублирование т.к.
...
@@ -912,7 +912,7 @@ namespace uniset
...
@@ -912,7 +912,7 @@ namespace uniset
{
{
ostringstream
err
;
ostringstream
err
;
err
<<
myname
<<
"(initFromReserv): Not found ID for '"
<<
smName
<<
"'"
;
err
<<
myname
<<
"(initFromReserv): Not found ID for '"
<<
smName
<<
"'"
;
smcrit
<<
err
.
str
()
<<
endl
;
smcrit
<<
err
.
str
()
<<
endl
<<
flush
;
// std::terminate();
// std::terminate();
uterminate
();
uterminate
();
return
;
return
;
...
@@ -929,7 +929,7 @@ namespace uniset
...
@@ -929,7 +929,7 @@ namespace uniset
{
{
ostringstream
err
;
ostringstream
err
;
err
<<
myname
<<
"(initFromReserv): Not found NodeID for '"
<<
smNode
<<
"'"
;
err
<<
myname
<<
"(initFromReserv): Not found NodeID for '"
<<
smNode
<<
"'"
;
smcrit
<<
err
.
str
()
<<
endl
;
smcrit
<<
err
.
str
()
<<
endl
<<
flush
;
//std::terminate();
//std::terminate();
uterminate
();
uterminate
();
return
;
return
;
...
...
extensions/UNetUDP/UNetExchange.cc
View file @
e5d82bcb
...
@@ -712,8 +712,8 @@ void UNetExchange::askSensors( UniversalIO::UIOCommand cmd )
...
@@ -712,8 +712,8 @@ void UNetExchange::askSensors( UniversalIO::UIOCommand cmd )
<<
"(askSensors): Не дождались готовности(work) SharedMemory к работе в течение "
<<
"(askSensors): Не дождались готовности(work) SharedMemory к работе в течение "
<<
activateTimeout
<<
" мсек"
;
<<
activateTimeout
<<
" мсек"
;
unetcrit
<<
err
.
str
()
<<
endl
;
unetcrit
<<
err
.
str
()
<<
endl
<<
flush
;
kill
(
SIGTERM
,
getpid
());
// прерываем (перезапускаем) процесс...
uterminate
();
throw
SystemError
(
err
.
str
());
throw
SystemError
(
err
.
str
());
}
}
...
...
extensions/UniNetwork/UniExchange.cc
View file @
e5d82bcb
...
@@ -151,7 +151,7 @@ void UniExchange::execute()
...
@@ -151,7 +151,7 @@ void UniExchange::execute()
err
<<
myname
<<
"(execute): Не дождались готовности SharedMemory к работе в течение "
err
<<
myname
<<
"(execute): Не дождались готовности SharedMemory к работе в течение "
<<
smReadyTimeout
<<
" мсек"
;
<<
smReadyTimeout
<<
" мсек"
;
ucrit
<<
err
.
str
()
<<
endl
;
ucrit
<<
err
.
str
()
<<
endl
<<
flush
;
//throw SystemError(err.str());
//throw SystemError(err.str());
//std::terminate();
//std::terminate();
uterminate
();
uterminate
();
...
...
include/OmniThreadCreator.h
View file @
e5d82bcb
...
@@ -97,7 +97,7 @@ namespace uniset
...
@@ -97,7 +97,7 @@ namespace uniset
typedef
void
(
ThreadMaster
::*
Action
)();
typedef
void
(
ThreadMaster
::*
Action
)();
OmniThreadCreator
(
const
std
::
shared_ptr
<
ThreadMaster
>&
m
,
Action
a
,
bool
undetached
=
false
);
OmniThreadCreator
(
const
std
::
shared_ptr
<
ThreadMaster
>&
m
,
Action
a
,
bool
undetached
=
false
);
~
OmniThreadCreator
()
{}
virtual
~
OmniThreadCreator
()
{}
inline
bool
isRunning
()
inline
bool
isRunning
()
{
{
...
...
include/UniSetActivator.h
View file @
e5d82bcb
...
@@ -72,11 +72,15 @@ namespace uniset
...
@@ -72,11 +72,15 @@ namespace uniset
// запуск системы
// запуск системы
// async = true - асинхронный запуск (создаётся отдельный поток).
// async = true - асинхронный запуск (создаётся отдельный поток).
void
run
(
bool
async
);
// terminate_control = true - управление процессом завершения (обработка сигналов завершения)
void
run
(
bool
async
,
bool
terminate_control
=
true
);
// штатное завершение работы
// штатное завершение работы
void
shutdown
();
void
shutdown
();
// ожидание завершения (если был запуск run(true))
void
join
();
// прерывание работы
// прерывание работы
void
terminate
();
void
terminate
();
...
@@ -96,7 +100,7 @@ namespace uniset
...
@@ -96,7 +100,7 @@ namespace uniset
protected
:
protected
:
void
w
ork
();
void
mainW
ork
();
// уносим в protected, т.к. Activator должен быть только один..
// уносим в protected, т.к. Activator должен быть только один..
UniSetActivator
();
UniSetActivator
();
...
@@ -111,6 +115,7 @@ namespace uniset
...
@@ -111,6 +115,7 @@ namespace uniset
std
::
shared_ptr
<
OmniThreadCreator
<
UniSetActivator
>
>
orbthr
;
std
::
shared_ptr
<
OmniThreadCreator
<
UniSetActivator
>
>
orbthr
;
CORBA
::
ORB_var
orb
;
CORBA
::
ORB_var
orb
;
bool
termControl
=
{
true
};
#ifndef DISABLE_REST_API
#ifndef DISABLE_REST_API
std
::
shared_ptr
<
uniset
::
UHttp
::
UHttpServer
>
httpserv
;
std
::
shared_ptr
<
uniset
::
UHttp
::
UHttpServer
>
httpserv
;
...
...
src/Core/UniSetActivator.cc
View file @
e5d82bcb
...
@@ -54,6 +54,14 @@ static std::atomic_bool g_done = ATOMIC_VAR_INIT(0);
...
@@ -54,6 +54,14 @@ static std::atomic_bool g_done = ATOMIC_VAR_INIT(0);
static
const
int
TERMINATE_TIMEOUT_SEC
=
15
;
// время отведенное на завершение процесса [сек]
static
const
int
TERMINATE_TIMEOUT_SEC
=
15
;
// время отведенное на завершение процесса [сек]
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
struct
ORBThreadDeleter
{
void
operator
()(
OmniThreadCreator
<
UniSetActivator
>*
p
)
const
{
// не удаляем..
}
};
// ---------------------------------------------------------------------------
namespace
uniset
namespace
uniset
{
{
UniSetActivatorPtr
UniSetActivator
::
inst
;
UniSetActivatorPtr
UniSetActivator
::
inst
;
...
@@ -126,10 +134,11 @@ namespace uniset
...
@@ -126,10 +134,11 @@ namespace uniset
}
}
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
void
UniSetActivator
::
run
(
bool
thread
)
void
UniSetActivator
::
run
(
bool
thread
,
bool
terminate_control
)
{
{
ulogsys
<<
myname
<<
"(run): создаю менеджер "
<<
endl
;
ulogsys
<<
myname
<<
"(run): создаю менеджер "
<<
endl
;
termControl
=
terminate_control
;
auto
aptr
=
std
::
static_pointer_cast
<
UniSetActivator
>
(
get_ptr
());
auto
aptr
=
std
::
static_pointer_cast
<
UniSetActivator
>
(
get_ptr
());
UniSetManager
::
initPOA
(
aptr
);
UniSetManager
::
initPOA
(
aptr
);
...
@@ -144,7 +153,8 @@ namespace uniset
...
@@ -144,7 +153,8 @@ namespace uniset
pman
->
activate
();
pman
->
activate
();
msleep
(
50
);
msleep
(
50
);
set_signals
(
true
);
if
(
termControl
)
set_signals
(
true
);
#ifndef DISABLE_REST_API
#ifndef DISABLE_REST_API
...
@@ -168,13 +178,13 @@ namespace uniset
...
@@ -168,13 +178,13 @@ namespace uniset
if
(
thread
)
if
(
thread
)
{
{
uinfo
<<
myname
<<
"(run): запускаемся с созданием отдельного потока... "
<<
endl
;
uinfo
<<
myname
<<
"(run): запускаемся с созданием отдельного потока... "
<<
endl
;
orbthr
=
make_shared
<
OmniThreadCreator
<
UniSetActivator
>
>
(
aptr
,
&
UniSetActivator
::
work
);
orbthr
=
std
::
shared_ptr
<
OmniThreadCreator
<
UniSetActivator
>>
(
new
OmniThreadCreator
<
UniSetActivator
>
(
aptr
,
&
UniSetActivator
::
mainWork
),
ORBThreadDeleter
()
);
orbthr
->
start
();
orbthr
->
start
();
}
}
else
else
{
{
uinfo
<<
myname
<<
"(run): запускаемся без создания отдельного потока... "
<<
endl
;
uinfo
<<
myname
<<
"(run): запускаемся без создания отдельного потока... "
<<
endl
;
w
ork
();
mainW
ork
();
shutdown
();
shutdown
();
}
}
}
}
...
@@ -189,15 +199,16 @@ namespace uniset
...
@@ -189,15 +199,16 @@ namespace uniset
return
;
return
;
active
=
false
;
active
=
false
;
set_signals
(
false
);
if
(
termControl
)
{
{
std
::
unique_lock
<
std
::
mutex
>
lk
(
g_donemutex
);
set_signals
(
false
);
g_done
=
false
;
{
g_finish_guard_thread
=
make_shared
<
std
::
thread
>
(
on_finish_timeout
);
std
::
unique_lock
<
std
::
mutex
>
lk
(
g_donemutex
);
g_done
=
false
;
g_finish_guard_thread
=
make_shared
<
std
::
thread
>
(
on_finish_timeout
);
}
}
}
ulogsys
<<
myname
<<
"(shutdown): deactivate... "
<<
endl
;
ulogsys
<<
myname
<<
"(shutdown): deactivate... "
<<
endl
;
deactivate
();
deactivate
();
ulogsys
<<
myname
<<
"(shutdown): deactivate ok. "
<<
endl
;
ulogsys
<<
myname
<<
"(shutdown): deactivate ok. "
<<
endl
;
...
@@ -238,9 +249,6 @@ namespace uniset
...
@@ -238,9 +249,6 @@ namespace uniset
ucrit
<<
myname
<<
"(shutdown): "
<<
ex
.
what
()
<<
endl
;
ucrit
<<
myname
<<
"(shutdown): "
<<
ex
.
what
()
<<
endl
;
}
}
if
(
orbthr
)
orbthr
->
join
();
{
{
std
::
unique_lock
<
std
::
mutex
>
lk
(
g_donemutex
);
std
::
unique_lock
<
std
::
mutex
>
lk
(
g_donemutex
);
g_done
=
true
;
g_done
=
true
;
...
@@ -252,6 +260,20 @@ namespace uniset
...
@@ -252,6 +260,20 @@ namespace uniset
g_finish_guard_thread
->
join
();
g_finish_guard_thread
->
join
();
}
}
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
void
UniSetActivator
::
join
()
{
if
(
g_done
)
return
;
ulogsys
<<
myname
<<
"(join): ..."
<<
endl
;
std
::
unique_lock
<
std
::
mutex
>
lk
(
g_donemutex
);
g_doneevent
.
wait
(
lk
,
[]()
{
return
(
g_done
==
true
);
}
);
}
// ------------------------------------------------------------------------------------------
void
UniSetActivator
::
terminate
()
void
UniSetActivator
::
terminate
()
{
{
ulogsys
<<
myname
<<
"(terminate): ..."
<<
endl
;
ulogsys
<<
myname
<<
"(terminate): ..."
<<
endl
;
...
@@ -262,6 +284,7 @@ namespace uniset
...
@@ -262,6 +284,7 @@ namespace uniset
{
{
auto
act
=
UniSetActivator
::
Instance
();
auto
act
=
UniSetActivator
::
Instance
();
act
->
shutdown
();
act
->
shutdown
();
ulogsys
<<
"******** activator_terminate finished **** "
<<
endl
;
}
}
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
void
UniSetActivator
::
on_finish_timeout
()
void
UniSetActivator
::
on_finish_timeout
()
...
@@ -340,7 +363,7 @@ namespace uniset
...
@@ -340,7 +363,7 @@ namespace uniset
// sigaction(SIGSEGV, &act, &oact);
// sigaction(SIGSEGV, &act, &oact);
}
}
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
void
UniSetActivator
::
w
ork
()
void
UniSetActivator
::
mainW
ork
()
{
{
ulogsys
<<
myname
<<
"(work): запускаем orb на обработку запросов..."
<<
endl
;
ulogsys
<<
myname
<<
"(work): запускаем orb на обработку запросов..."
<<
endl
;
...
...
src/Core/UniSetObject.cc
View file @
e5d82bcb
...
@@ -760,9 +760,14 @@ namespace uniset
...
@@ -760,9 +760,14 @@ namespace uniset
}
}
else
else
{
{
uinfo
<<
myname
<<
": ?? не задан ObjectId...("
// выдаём предупреждение только если поток не отключён, но при этом не задан ID
<<
"myid="
<<
myid
<<
" threadcreate="
<<
threadcreate
if
(
threadcreate
)
<<
")"
<<
endl
;
{
uinfo
<<
myname
<<
": ?? не задан ObjectId...("
<<
"myid="
<<
myid
<<
" threadcreate="
<<
threadcreate
<<
")"
<<
endl
;
}
thread
(
false
);
thread
(
false
);
}
}
...
...
src/Processes/IOController.cc
View file @
e5d82bcb
...
@@ -123,7 +123,7 @@ void IOController::activateInit()
...
@@ -123,7 +123,7 @@ void IOController::activateInit()
}
}
catch
(
const
uniset
::
Exception
&
ex
)
catch
(
const
uniset
::
Exception
&
ex
)
{
{
ucrit
<<
myname
<<
"(activateInit): "
<<
ex
<<
endl
;
ucrit
<<
myname
<<
"(activateInit): "
<<
ex
<<
endl
<<
flush
;
//std::terminate();
//std::terminate();
uterminate
();
uterminate
();
}
}
...
...
src/Processes/IONotifyController.cc
View file @
e5d82bcb
...
@@ -772,7 +772,7 @@ void IONotifyController::readConf()
...
@@ -772,7 +772,7 @@ void IONotifyController::readConf()
// Если дамп не удалось считать, значит что-то не то в configure.xml
// Если дамп не удалось считать, значит что-то не то в configure.xml
// и безопаснее "вылететь", чем запустится, т.к. часть датчиков не будет работать
// и безопаснее "вылететь", чем запустится, т.к. часть датчиков не будет работать
// как ожидается.
// как ожидается.
ucrit
<<
myname
<<
"(IONotifyController::readConf): "
<<
ex
.
what
()
<<
endl
;
ucrit
<<
myname
<<
"(IONotifyController::readConf): "
<<
ex
.
what
()
<<
endl
<<
flush
;
//std::terminate(); // std::abort();
//std::terminate(); // std::abort();
uterminate
();
uterminate
();
}
}
...
...
src/Processes/ProxyManager.cc
View file @
e5d82bcb
...
@@ -106,7 +106,7 @@ bool ProxyManager::activateObject()
...
@@ -106,7 +106,7 @@ bool ProxyManager::activateObject()
}
}
catch
(
const
uniset
::
Exception
&
ex
)
catch
(
const
uniset
::
Exception
&
ex
)
{
{
ucrit
<<
myname
<<
"(activate): "
<<
ex
<<
endl
;
ucrit
<<
myname
<<
"(activate): "
<<
ex
<<
endl
<<
flush
;
//std::terminate();
//std::terminate();
uterminate
();
uterminate
();
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment