summaryrefslogtreecommitdiff
path: root/src/global.c
Commit message (Collapse)AuthorAgeFilesLines
...
* Switch search paths to classic delimited stringsRussell Belfer2013-03-181-2/+7
| | | | | | | | | | | | This switches the APIs for setting and getting the global/system search paths from using git_strarray to using a simple string with GIT_PATH_LIST_SEPARATOR delimited paths, just as the environment PATH variable would contain. This makes it simpler to get and set the value. I also added code to expand "$PATH" when setting a new value to embed the old value of the path. This means that I no longer require separate actions to PREPEND to the value.
* update copyrightsEdward Thomson2013-01-081-1/+1
|
* git__mwindow_mutex needs to be initialized even with pthreadsJustin Spahr-Summers2012-12-091-0/+2
| | | | This could also use PTHREAD_MUTEX_INITIALIZER, but a dynamic initializer seems like a more portable concept, and we won't need another #define on top of git_mutex_init()
* unload dll / destroy hash ctxs at shutdownEdward Thomson2012-11-131-0/+6
|
* move hash library func ptrs to global globalEdward Thomson2012-11-131-7/+38
|
* threads: Assert that the global state is initializedVicent Marti2012-10-011-0/+4
|
* Make the memory-window conrol structures globalCarlos Martín Nieto2012-08-201-0/+5
| | | | | | | | | | | | | Up to now, the idea was that the user would do all the operations for one repository in the same thread. Thus we could have the memory-mapped window information thread-local and avoid any locking. This is not practical in a few environments, such as Apple's GCD which allocates threads arbitrarily or the .NET CLR, where the OS-level thread can change at any moment. Make the control structure global and protect it with a mutex so we don't depend on the thread currently executing the code.
* Implement git_pool paged memory allocatorRussell Belfer2012-04-251-3/+3
| | | | | | | | | | | | | | | | | | This adds a `git_pool` object that can do simple paged memory allocation with free for the entire pool at once. Using this, you can replace many small allocations with large blocks that can then cheaply be doled out in small pieces. This is best used when you plan to free the small blocks all at once - for example, if they represent the parsed state from a file or data stream that are either all kept or all discarded. There are two real patterns of usage for `git_pools`: either for "string" allocation, where the item size is a single byte and you end up just packing the allocations in together, or for "fixed size" allocation where you are allocating a large object (e.g. a `git_oid`) and you generally just allocation single objects that can be tightly packed. Of course, you can use it for other things, but those two cases are the easiest.
* Update Copyright headerschu2012-02-131-1/+1
| | | | Signed-off-by: schu <schu-github@schulog.org>
* threads: Fix the shared global state with TLSVicent Marti2011-11-161-0/+134
See `global.c` for a description of what we're doing. When libgit2 is built with GIT_THREADS support, the threading system must be explicitly initialized with `git_threads_init()`.