Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Remove references to Haskell 98 | Ian Lynagh | 2010-11-23 | 1 | -1/+1 |
| | | | | | They are no longer right, as we have Haskell' generating new Haskell standards. | ||||
* | add #include <sys/types.h> (hopefully fixes OS X build) | Simon Marlow | 2009-08-06 | 1 | -1/+2 |
| | |||||
* | RTS tidyup sweep, first phase | Simon Marlow | 2009-08-02 | 1 | -2/+3 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The first phase of this tidyup is focussed on the header files, and in particular making sure we are exposinng publicly exactly what we need to, and no more. - Rts.h now includes everything that the RTS exposes publicly, rather than a random subset of it. - Most of the public header files have moved into subdirectories, and many of them have been renamed. But clients should not need to include any of the other headers directly, just #include the main public headers: Rts.h, HsFFI.h, RtsAPI.h. - All the headers needed for via-C compilation have moved into the stg subdirectory, which is self-contained. Most of the headers for the rest of the RTS APIs have moved into the rts subdirectory. - I left MachDeps.h where it is, because it is so widely used in Haskell code. - I left a deprecated stub for RtsFlags.h in place. The flag structures are now exposed by Rts.h. - Various internal APIs are no longer exposed by public header files. - Various bits of dead code and declarations have been removed - More gcc warnings are turned on, and the RTS code is more warning-clean. - More source files #include "PosixSource.h", and hence only use standard POSIX (1003.1c-1995) interfaces. There is a lot more tidying up still to do, this is just the first pass. I also intend to standardise the names for external RTS APIs (e.g use the rts_ prefix consistently), and declare the internal APIs as hidden for shared libraries. | ||||
* | Initialise and deinitialise the file_lock_mutex | Ian Lynagh | 2009-01-17 | 1 | -0/+6 |
| | |||||
* | FIX #2398: file locking wasn't thread-safe | Simon Marlow | 2008-07-04 | 1 | -0/+15 |
| | |||||
* | FIX #2122: file locking bug | Simon Marlow | 2008-02-26 | 1 | -0/+1 |
| | | | | | | Second and subsequent readers weren't being inserted into the fd->lock hash table, which meant that the file wasn't correctly unlocked when the Handles were closed. | ||||
* | Move file locking into the RTS, fixing #629, #1109 | Simon Marlow | 2007-11-20 | 1 | -0/+121 |
File locking (of the Haskell 98 variety) was previously done using a static table with linear search, which had two problems: the array had a fixed size and was sometimes too small (#1109), and performance of lockFile/unlockFile was suboptimal due to the linear search. Also the algorithm failed to count readers as required by Haskell 98 (#629). Now it's done using a hash table (provided by the RTS). Furthermore I avoided the extra fstat() for every open file by passing the dev_t and ino_t into lockFile. This and the improvements to the locking algorithm result in a healthy 20% or so performance increase for opening/closing files (see openFile008 test). |