Commit Graph

66 Commits

Author SHA1 Message Date
marco
a4864e36f2 # revisions: 39668,39669,39671,39672,40652,41280,41281,42240,42244,42245,42286,42326,42456,42461,43048,43107,43108,43109,43110,43111,43112,43113
git-svn-id: branches/fixes_3_2@43394 -
2019-11-05 15:31:21 +00:00
marco
b8e3d6efa1 # revisions: 41570,41571,41938,42457,42327,42556,42557
git-svn-id: branches/fixes_3_2@43393 -
2019-11-05 15:16:28 +00:00
marco
d32d0df485 --- Merging r41584 into '.':
U    rtl/amicommon/athreads.pp
U    rtl/amicommon/tthread.inc
--- Recording mergeinfo for merge of r41584 into '.':
 U   .

# revisions: 41584
r41584 | karoly | 2019-03-04 02:43:42 +0100 (Mon, 04 Mar 2019) | 1 line
Changed paths:
   M /trunk/rtl/amicommon/athreads.pp
   M /trunk/rtl/amicommon/tthread.inc

amicommon: add some naive RTLEventWaitFor implementation, add long standing tthread.inc patch by Sven. Synchronize/CheckSynchronize should now work on Amiga

git-svn-id: branches/fixes_3_2@41940 -
2019-04-27 16:14:58 +00:00
Károly Balogh
c840c4d6a8 athreads: add a custom API to retrieve underlying process ID from AThreads. this makes it possible to combine some Amiga API features like Signaling with FPC's thread handling
git-svn-id: trunk@38848 -
2018-04-26 11:28:38 +00:00
marcus
ae184f4665 Amicommon: Implemented GetTempDir() for all Amiga systems ('T:' as default)
git-svn-id: trunk@38393 -
2018-03-01 18:04:40 +00:00
marcus
a0aaa69c0f Amicommon: implemented BasicEvents in AThreads
git-svn-id: trunk@36905 -
2017-08-14 19:52:16 +00:00
Károly Balogh
6e3936c534 amicommon: implement StackTop for other Amiga-like systems
git-svn-id: trunk@36697 -
2017-07-08 23:48:29 +00:00
Károly Balogh
c1187a17cd amiga: call InternalFindClose in InternalFindFirst, if finding the first file fails
git-svn-id: trunk@36505 -
2017-06-15 12:51:06 +00:00
marcus
67c3fd2276 AROS: Semaphores are much bigger on 64bit, fixes crashes and freezes on AROS64 with Threading enabled
git-svn-id: trunk@36206 -
2017-05-14 13:39:15 +00:00
Károly Balogh
c7576e4a3f sysutils: enable FINDHANDLE_IS_POINTER for Amiga-like systems and Atari. this allows to remove some Pointer<->THandle casts from the amicommon code
git-svn-id: trunk@35198 -
2016-12-27 03:23:54 +00:00
Károly Balogh
7d2360eb0c m68k: Test68000/Test68881 support boilerplate and special support for Amiga
git-svn-id: trunk@35194 -
2016-12-24 21:11:06 +00:00
marcus
bebef242d4 AROS: Initial ABIv1 Support
git-svn-id: trunk@35066 -
2016-12-04 15:41:35 +00:00
marcus
092244309a Amicommon: use THandle/BPTR instead of LongInt (needed for 64 bit)
git-svn-id: trunk@35030 -
2016-12-01 17:55:58 +00:00
Tomas Hajny
1e6ee7f3c7 * fix remaining search handle leaks in Dos.FSearch - fix for bug #30896
git-svn-id: trunk@34910 -
2016-11-17 22:05:17 +00:00
marcus
3207a346e1 AROS: arm needs AROS_FLAVOUR_BINCOMPAT defines
git-svn-id: trunk@34895 -
2016-11-13 21:05:12 +00:00
Károly Balogh
33602807f5 amicommon: set the return value of SysErrorMessage to something default. this is consistent with some other platforms
git-svn-id: trunk@34591 -
2016-10-02 02:03:22 +00:00
sergei
67bd4775fd - Cleaned out thread manager semaphore support which was ever implemented only for Unix, and not used since r28965. This also reverts changes to System unit interface introduced in r27665.
git-svn-id: trunk@34542 -
2016-09-20 20:14:36 +00:00
marcus
e38e051425 Amicommon: Unified parameterhandling for Amiga, AROS, MorphOS
git-svn-id: trunk@33528 -
2016-04-17 15:31:18 +00:00
marcus
b396d34364 Amicommon: Fixed compilation after r33290
git-svn-id: trunk@33292 -
2016-03-20 06:45:00 +00:00
marco
66608fec02 * unicode executeprocess from work during Lazarus convention in IJsselstein
git-svn-id: trunk@33290 -
2016-03-19 17:59:42 +00:00
marcus
2fe3a342f2 AROS: SystemTags changed to PtrUInt for 64bit
git-svn-id: trunk@33260 -
2016-03-17 18:57:05 +00:00
michael
fde42ca8ef * Type helpers, compatible to Delphi XE 8
git-svn-id: trunk@32262 -
2015-11-07 09:40:54 +00:00
Károly Balogh
eb3bd4648c amicommon: actually, not all filesystems (FTPMount, for example) support the ExamineFH method, so fall back to double-seek in that case
git-svn-id: trunk@31223 -
2015-07-23 18:43:37 +00:00
Károly Balogh
32120a47f4 amicommon/sysutils: use THandle instead of Longint
git-svn-id: trunk@31175 -
2015-06-28 23:38:37 +00:00
Károly Balogh
c704b4b918 amicommon/sysfile.inc: use THandle instead of LongInt
git-svn-id: trunk@31174 -
2015-06-28 23:36:09 +00:00
Károly Balogh
51a6c217c7 amicommon/dos: some warning fixes - use PtrInt instead of LongInt; do not check for less than zero values in unsigned variables
git-svn-id: trunk@31173 -
2015-06-28 23:12:41 +00:00
Károly Balogh
1a53f6a799 AROS: in agreement with Marcus Sackrow, AThreads is now enabled for AROS, and the old AROS-specific threading implementation is zapped
git-svn-id: trunk@31008 -
2015-06-07 18:35:50 +00:00
Károly Balogh
57f8922448 amicommon: make AThreads call the thread init/exit chain
git-svn-id: trunk@30992 -
2015-06-06 19:52:13 +00:00
Károly Balogh
5eea4b2846 amicommon: support for init/exit procedures for threads. will be used by Sockets unit for example, because bsdsocket.library needs to be reopened for each thread
git-svn-id: trunk@30991 -
2015-06-06 19:51:12 +00:00
Károly Balogh
0abb517ffb amicommon: AThreads now supports calling suspend from the thread itself
git-svn-id: trunk@30959 -
2015-05-31 17:26:45 +00:00
Károly Balogh
6e6b00377f amicommon: since system units now contain CREATE_SUSPENDED const, use that instead of a hardwired value
git-svn-id: trunk@30958 -
2015-05-31 17:25:31 +00:00
Károly Balogh
0997122c4c AThreads: less random Hungarian swearing as accidentally left in debug code :)
git-svn-id: trunk@30942 -
2015-05-31 10:06:36 +00:00
Károly Balogh
eacc41d3b3 AThreads: use ThreadInfo block pointer as ThreadID, instead of the ProcessPtr itself, because after the process exited that can be reused and leads to ID collisions in the list. Also added a small helper for Int to HexStr printing, so we could avoid a bunch of pointer casting all over the code.
git-svn-id: trunk@30940 -
2015-05-31 09:09:51 +00:00
Károly Balogh
24677c9309 amicommon: more work on AThreads
- reworked exit syncronization/waiting. now uses signalsemaphores instead of messaging. this avoids the requirement for an extra message port per thread, which caused signal shortages earlier.
- additional cleanups
- now try to free up "leaked" resources on exit

git-svn-id: trunk@30933 -
2015-05-29 02:07:37 +00:00
Károly Balogh
b4ce380cd4 amicommon/AThreads: use shared semaphores locks where possible for read-only access; preparations to be built in the RTL; code cleanups
git-svn-id: trunk@30924 -
2015-05-28 01:10:38 +00:00
Károly Balogh
6afcca7cd3 Amiga-likes: preparations for inclusion of AThreads into the RTL buildprocess
git-svn-id: trunk@30923 -
2015-05-28 00:47:35 +00:00
Károly Balogh
21a9b96e7e amicommon: avoid SysUtils unit and AnsiStrings in AThreads
git-svn-id: trunk@30922 -
2015-05-27 22:37:50 +00:00
Károly Balogh
eb692e46d2 amicommon: added ShortString version of SysDebug family of functions
git-svn-id: trunk@30921 -
2015-05-27 22:25:22 +00:00
Károly Balogh
632c46bcb6 amicommon: have a generic tthread.inc which even works, given there is a reasonably advanced ThreadManager
git-svn-id: trunk@30914 -
2015-05-25 21:06:53 +00:00
Károly Balogh
45ce4538fa amicommon: more AThreads work
- in WaitForThreadTerminate, do not try to wait if the thread already exited
- when debug mode enabled, release the threadvars later, so AnsiString debug messages still work
- do not call DoneThread in EndThread. the threadfunc will call it when exited.

git-svn-id: trunk@30913 -
2015-05-25 19:47:21 +00:00
Károly Balogh
73f451f3d3 amicommon: AThreads improvements
- now supports creation of suspended threads
- reworked CriticalSections handling to avoid outside-heap dynamic allocations of mutex space
- allocate threadvars area into the heapPool, this avoids leaking the mainthread threadvar area on exit
- now supports setting thread stacksize in a Delphi-compatible way (by default inherits the stacksize of its parent)
- better subthread naming

git-svn-id: trunk@30912 -
2015-05-25 17:55:43 +00:00
Károly Balogh
c7856d25f8 amicommon: AThreads, a native threadmanager unit, similar to Unix's cthreads
- early stage, but tested and works on MorphOS and Amiga/68k (with at least 1 subthread... :)
- basic Threading functions and CriticalSections implemented
- Semaphores, RTLEvents and some other minor bits are still missing
- probably won't support all kinds of crazy hacky code out there. the user code must obey some Amiga-limitations, which come from the way the Amiga works

git-svn-id: trunk@30905 -
2015-05-24 23:07:41 +00:00
Károly Balogh
f5bcb011ea amicommon: properly arbitrate access to the open file list in a multithreaded environment
git-svn-id: trunk@30899 -
2015-05-24 12:15:02 +00:00
Károly Balogh
48b38994c8 amicommon: the use OS-defined TICKS_PER_SECOND const instead of redefining it using another name
git-svn-id: trunk@30391 -
2015-03-30 08:26:16 +00:00
Károly Balogh
99123a1ea9 amicommon: massively improved FindFirst/FindNext implementation in the DOS unit. now supports Directory filtering and returns the time field of SearchRec in the expected format. This fixes a bunch of issues in the IDE and Free Vision, among others
git-svn-id: trunk@30390 -
2015-03-30 02:18:36 +00:00
Károly Balogh
6128007f83 amicommon: reindented dos/Create_Timer(), no functional changes
git-svn-id: trunk@30364 -
2015-03-29 11:09:37 +00:00
Károly Balogh
d7ffb52490 amicommon: define FPC_FEXPAND_DIRSEP_IS_UPDIR for Amiga-like systems. this seems to fix several FExpand weirdness on these systems (like the IDE not working properly on the root directory of a volume due to wrong paths)
git-svn-id: trunk@30358 -
2015-03-29 01:51:04 +00:00
Károly Balogh
bbecfeed9e Amiga: manually semaphore-protect the heap Pool, because classic Amiga has no MEMF_SEM_PROTECTED
git-svn-id: trunk@30356 -
2015-03-29 00:18:19 +00:00
marcus
141878978e AmiCommon: Missing UnLockDosList, DiskFree Bugfix
git-svn-id: trunk@29694 -
2015-02-14 20:06:47 +00:00
Károly Balogh
3cdf2d0e53 AROS: fixed the new do_filesize() code to build on AROS.
git-svn-id: trunk@29381 -
2015-01-04 01:55:49 +00:00