Commit Graph

44 Commits

Author SHA1 Message Date
Andrew Johnson e18eca80db Changes from patch in lp:1539791 2016-02-23 15:43:26 -06:00
Andrew Johnson 43cf5af621 dbQuietMacroWarnings control 2016-01-26 12:28:00 -06:00
Michael Davidsaver 504665bf09 iocInit: move dbCaShutdown earlier
Switch dbCaShutdown from an exit hook to
be called from iocShutdown.  Place it
after callback shutdown.
2015-07-21 19:08:07 -04:00
Michael Davidsaver fefe6fd1fc Fix shutdown issues with scan and callback.
The main reason for this merge proposal is the change to "public" API functions.

Use atomic counter to resolve data race on threadsRunning in callback.

Split up callbackShutdown() and scanShutdown() into two phases *Stop() and
*Cleanup(). The *Stop() functions signal worker threads, and wait for them to
exit. The *Cleanup() functions actually reclaim global resources.

These two mechanisms have couplings which are quite complex. I/O Intr scans
involve both scan lists and callbacks.
2015-07-16 11:48:29 -05:00
Michael Davidsaver 93149071b7 dbNotify: shutdown with exitDatabase
Can't cleanup dbNotify while rsrv or scan tasks
are running as there may be operations in progress.
2014-11-18 11:25:15 -05:00
Michael Davidsaver 9c2a62ea96 dbChannel: shutdown from exitDatabase()
Can't cleanup dbChannel while rsrv or scan tasks
remain running.
2014-11-18 11:25:15 -05:00
Michael Davidsaver d35780888a iocInit: only teardown from iocBuildIsolated()
iocShutdown() should only stop threads and cleanup
if the IOC was started with iocBuildIsolated().
If iocBuild() is used then only close CA links
as was done previously.

This is needed as some device support calls epicsExit()
(while holding a record lock).  This make it impossible
to run the full iocShutdown without deadlocking
in scan/callback shutdown, or segfaulting
in doFreeRecord() or dbLockCleanupRecords()
2014-11-13 11:58:35 -05:00
Andrew Johnson b74eb61949 Merged dbca-test branch 2014-10-06 18:04:33 -05:00
Andrew Johnson 9cebc2993b Fix epicsExportSharedSymbols for MinGW build
Include files now in sorted order within each block.
2014-10-06 00:57:02 -05:00
Andrew Johnson 70feb515c3 Merged parallel-cbthreads-3 branch 2014-10-02 15:07:07 -05:00
Andrew Johnson 27a8818ea8 Silence unused variable warning 2014-09-29 12:35:22 -05:00
Ralph Lange ca8eda8090 Merge (cherry-pick) original parts from parallel-cbthreads branch 2014-08-25 13:40:18 -07:00
Michael Davidsaver 40838579af iocShutdown: cleanup links 2014-07-31 16:22:01 -04:00
Michael Davidsaver 9f53417a8d add dbCaLinkInitIsolated()
Initialize dbCa workList lock so that CA_LINK
creation in test code doesn't crash.
Once created links will never connect.

clean up workList for unittest when dbCaShutdown
is called state is already exit.
2014-07-31 16:22:01 -04:00
Michael Davidsaver 9d03275c53 iocInit: ensure dbLock cleanup after iocShutdown cleanup
by making dbLock init before initDatabase()
2014-07-25 13:49:55 -04:00
Michael Davidsaver f85c3249ab dbUnitTest: rename 2014-07-10 18:23:49 -04:00
Michael Davidsaver a9d4204d43 dbLock: free LSET 2014-06-23 16:28:28 -04:00
Michael Davidsaver 3ca42fc838 cleanup iocsh 2014-06-23 16:28:22 -04:00
Michael Davidsaver ad2bb0725d asShutdown 2014-06-23 16:28:22 -04:00
Ralph Lange 2d4e143987 db/callback: add callbackShutdown() to API, add shutdown handling 2014-06-23 16:28:21 -04:00
Ralph Lange 23e22313f1 db/dbScan: add scanShutdown() to API, complete shutdown handling 2014-06-23 16:28:21 -04:00
Michael Davidsaver 564a527489 misc/iocInit: add iocBuildNoCA() and iocShutdown() to API, split up
iocBuild in three phases
2014-06-23 16:28:20 -04:00
Michael Davidsaver 8a42190e39 ensure the errlog is started with iocInit 2014-06-23 16:28:20 -04:00
Michael Davidsaver a28a561d8a epicsExit: optional debug printing
Add a flag to cause a string to be printed
before each handler is run to show the order.
2014-06-23 16:28:18 -04:00
Andrew Johnson 0a2020e2fc Merged changes from 3.14 branch
Up to 3.14.12.4 release.
2013-12-17 12:54:04 -06:00
Andrew Johnson 2eb48f43eb Merged my udf-severity branch. 2013-05-30 15:00:37 -05:00
Andrew Johnson 04ccf9db0d Consistency for extended device support
Call scanDelete() before pdsxt->del_record()
when closing down an IOC.
2013-04-04 14:59:56 -05:00
Ralph Lange c1318e7d55 ioc/db: add support for parallel callback threads
- use thread safe (spinlocked) callback queues
- add callbackParallelThreads() configuration call (with iocShell binding)
- add callbackParallelThreadsDefault variable, preset to number of CPUs
- remove calls to epicsInterruptLock()
2013-03-29 17:27:56 +01:00
Andrew Johnson 5a498e26a1 Added Undefined Severity field UDFS
With this, records can be configured to have a lower
alarm severity when they are undefined.
Sets initial severity at iocInit too.
2012-12-10 09:25:58 -06:00
Andrew Johnson cb797ca0cd Merged the remove-epicsShareAPI branch.
Most APIs in libCom are still marked with this,
it's not clear if removing them will be a problem or not.
2012-07-17 14:36:34 -05:00
Andrew Johnson 64c9d7a32a Many tweaks to build on Windows.
There might be some more to come since I'm not committing
this from my Win32 system.
2012-07-17 14:33:31 -05:00
Andrew Johnson b8d0d97827 Removed all epicsShareAPI attributes from src/ioc.
There were none at all in src/std.
2012-07-15 16:08:50 -05:00
Andrew Johnson e6149b6606 Merged process-get branch.
Seems to work, but not tested in depth.
2012-07-11 18:07:23 -05:00
Andrew Johnson 44a70cca5a merged server-side-plugins branch 2012-06-22 18:16:26 -05:00
Andrew Johnson 5b228618e1 Merged epicsStdioRedirect.h into epicsStdio.h 2012-05-03 12:19:34 -05:00
Ralph Lange d2abc71527 Add function to dbChannel.c to create a db_field_log copy of array/string data 2012-04-27 13:22:00 -04:00
Michael Davidsaver 74b24bbe0f Refactor link handling code (incomplete).
* Moved routines into dbLink.h and dbLink.c
  * Created separate routines for DB_LINK processing
  * Added dbinitLink() and dbAddLink()
  * Started a Link Support Entry Table, not used yet
  * Everything should still work as before...
2012-04-27 13:21:47 -04:00
Andrew Johnson 4d0c0f4b51 Merged changes from 3.14 branch up to 2011-11-02 2011-11-02 14:59:18 -05:00
Michael Davidsaver f242a27dea Merge std/*
Combine recIoc and softDevIoc libraries into dbRecStd

Move base.dbd from ioc/misc/ to std/softIoc/

Generate stdRecords.dbd from the std/rec/Makefile list of record
types instead of hard-coding it in base.dbd
2011-02-26 18:24:51 -06:00
Michael Davidsaver e463793bc3 Merge ioc/*.
Merge miscIoc rsrvIoc dbtoolsIoc asIoc dbIoc registryIoc dbStaticIoc
into dbCore.

Move ioc/misc/asSubRecordFunctions.c to std/dev/asSubRecordFunctions.c
since it depends on the subRecord type.

Extracted ioc variable definitions from base.dbd into dbCore.dbd
2011-02-25 23:56:51 -06:00
Michael Davidsaver 31533ba62e Fixup Makefiles
Adjust TOP and paths
2010-12-16 17:05:05 -05:00
Michael Davidsaver 2a36a3906d Stage 1 reorganization
Directory moves.

  src/RTEMS/ => src/libCom/RTEMS/
  src/as/ => src/ioc/as/
  src/bpt/ => src/ioc/bpt/
  src/ca/ => src/ca/client/
  src/cap5/ => src/ca/client/perl/
  src/cas/ => src/ca/legacy/pcas/
  src/catools/ => src/ca/client/tools/
  src/db/ => src/ioc/db/
  src/dbStatic/ => src/ioc/dbStatic/
  src/dbtools/ => src/ioc/dbtemplate/
  src/dev/softDev/ => src/std/dev/
  src/dev/testDev/ => src/std/test/
  src/excas/ => src/ca/legacy/pcas/ex/
  src/gdd/ => src/ca/legacy/gdd/
  src/makeBaseApp/ => src/template/base/
  src/makeBaseExt/ => src/template/ext/
  src/misc/ => src/ioc/misc/
  src/rec/ => src/std/rec/
  src/registry/ => src/ioc/registry/
  src/rsrv/ => src/ioc/rsrv/
  src/softIoc/ => src/std/softIoc/
  src/toolsComm/ => src/libCom/tools/
2010-12-16 15:15:52 -05:00
Andrew Johnson f7d02cc2a8 Convert INST_IO links to regular PV_LINK types, for VDCT support.
Added new PN_LINK type in link.h, make dbStaticLib display it.
Made all device support extended so links can be changed at runtime.
Modified startup so add_record() always called before regular link processing.
Incomplete, stilll need to add MS/MSS/MSI support, currently disabled.
2010-01-07 23:48:49 -06:00
Andrew Johnson 0563044097 Marty Kraimer's changes to support process-get operations. 2009-12-28 20:37:09 -06:00