summaryrefslogtreecommitdiff
path: root/src/Utility
AgeCommit message (Collapse)Author
2015-11-01merge from concurrent-outputJoey Hess
2015-11-01merge from concurrent-outputJoey Hess
2015-11-01merge changes from concurrent-outputJoey Hess
2015-10-29generalize what can be outputJoey Hess
This adds a dependency on Text, but I don't mind propellor depending on it and am somewhat surprised it doesn't already. Using Text also lets this use encodeUtf8 instead of the nasty hack it was using to go from String -> ByteString.
2015-10-28exampleJoey Hess
2015-10-28propellor spinJoey Hess
2015-10-28have to flush concurrent output before printing result when chainingJoey Hess
2015-10-28export lockOutputJoey Hess
2015-10-28remove externalsJoey Hess
2015-10-28better lock taking using STM, and wait for concurrent processes writer ↵Joey Hess
threads on shutdown
2015-10-28remove debug codeJoey Hess
2015-10-28fix memory leak, and optimise when command output is very largeJoey Hess
2015-10-28fix buffer orderJoey Hess
Build it up reversed, and reverse when processing.
2015-10-28work around waitForProcess race conditionJoey Hess
https://github.com/haskell/process/issues/46
2015-10-28fix tricky raceJoey Hess
Race between 2 calls to takeOutputLock'. The first call empties the TMVar, and does some work to check it. Meanwhile, the second call could sneak in, see it was empty, and call waitlock. Since waitlock used tryTakeTMVar, that would not block it, and it would think it had the lock, filling the TMVar. In the meantime, the first call could decide it had to lock and go on to possibly cause trouble.
2015-10-28fix bad MVar use, use STMJoey Hess
I had 2 MVars both involved in the same lock, and it seemed intractable to avoid deadlocks with them. STM makes it easy. At this point, the concurrent process stuff seems to work pretty well, but I'm not 100% sure it's not got some bugs.
2015-10-28need withConcurrentOutput to flush any buffered concurrent outputJoey Hess
2015-10-28propellor spinJoey Hess
2015-10-28propellor spinJoey Hess
2015-10-28use outputConcurrent interfaceJoey Hess
This interface will fix the current deadlock when a process is running and the thread that ran it wants to output to the console. The locking and buffering is not implemented yet.
2015-10-28propellor spinJoey Hess
2015-10-28propellor spinJoey Hess
2015-10-28improve commentJoey Hess
2015-10-28don't truncate over-large output; swap to temp filesJoey Hess
2015-10-28split out generic ConcurrentOutput module to UtilityJoey Hess
2015-10-27use execProcessConcurrent everywhereJoey Hess
Found a reasonable clean way to make Utility.Process use execProcessConcurrent, while still allowing copying updates to it from git-annex.
2015-10-27merge from git-annexJoey Hess
2015-09-15avoid a change to readProcess that I regretted in the morningJoey Hess
Seems better to keep handle encoding issues out of that module.
2015-09-14Allow storing arbitrary ByteStrings in PrivData, extracted using ↵Joey Hess
privDataByteString.
2015-09-13merge from git-annexJoey Hess
2015-09-13Follow some hlint suggestions.Mario Lang
2015-06-01remove Params constructorJoey Hess
Before it gets into released API...
2015-05-30export createProcess with debug logging from Propellor.Property.CmdJoey Hess
2015-05-27merge changes from git-annexJoey Hess
2015-05-27Export CommandParam, boolSystem, safeSystem and shellEscape from ↵Joey Hess
Propellor.Property.Cmd, so they are available for use in constricting your own Properties when using propellor as a library. Several imports of Utility.SafeCommand now redundant.
2015-05-27merge changes from git-annexJoey Hess
2015-05-07merge from git-annexJoey Hess
2015-04-29propellor spinJoey Hess
2015-01-21Added journald configuration properties.Joey Hess
2015-01-15typo; columns vs rowsJoey Hess
No behavior change
2015-01-15avoid unncessary padding on last column in tableJoey Hess
2015-01-06Merge Utiity modules from git-annex.Joey Hess
Except for a few that are using the other exception handling library, that propellor has not switched to yet.
2015-01-04Fix build with process 1.2.1.0.Joey Hess
2014-11-21email updateJoey Hess
2014-11-19propellor spinJoey Hess
2014-11-19merge from git-annexJoey Hess
2014-07-06propellor spinJoey Hess
2014-05-29merge from git-annexJoey Hess
2014-05-14moved source code to srcJoey Hess
This is to work around OSX's brain-damange regarding filename case insensitivity. Avoided moving config.hs, because it's a config file. Put in a symlink to make build work.