This release fixes the lack of an isolation property. On a transactional
model, every separate transaction must now be isolated from the others
(it must not see partial results of other transactions). Previous
releases did not accomplish this requirement in the presence of an
"orElse" composition in which the first transaction blocked.
The g_transaction_do() function signature was
changed, so now it has a gpointer argument to pass
data in and out from the transaction function on
execution. g_transaction_abort() was added. A
solution to the dining philosophers problem was
added to the test suite. There are now binary
packages available for Fedora Core 4.
Many errors were fixed, configure options were added, the signature of g_transaction_new() was changed, and g_transaction_set_func() was removed. Macros for manipulating a transaction's private field were added. g_transaction_do() and g_transaction_retry() are now more efficient, and the GTransaction data type occupies far less memory.
Now blocking transactions goes to sleep only on tvar's that were already read from the beginning of the transaction. It also includes a new --disable-checks configure option, which is useful for speeding up execution.