https://bugzilla.redhat.com/show_bug.cgi?id=1795079
Bug ID: 1795079
Summary: Review Request: golang-github-anacrolix-stm - Software
Transactional Memory in Go
Product: Fedora
Version: rawhide
Status: NEW
Component: Package Review
Assignee: nobody(a)fedoraproject.org
Reporter: zebob.m(a)gmail.com
QA Contact: extras-qa(a)fedoraproject.org
CC: package-review(a)lists.fedoraproject.org
Target Milestone: ---
Classification: Fedora
Spec URL:
https://eclipseo.fedorapeople.org/for-review/golang-github-anacrolix-stm....
SRPM URL:
https://eclipseo.fedorapeople.org/for-review/golang-github-anacrolix-stm-...
Description:
Package stm provides Software Transactional Memory operations for Go. This is
an alternative to the standard way of writing concurrent code (channels and
mutexes). STM makes it easy to perform arbitrarily complex operations in an
atomic fashion. One of its primary advantages over traditional locking is that
STM transactions are composable, whereas locking functions are not -- the
composition will either deadlock or release the lock between functions (making
it non-atomic). The stm API tries to mimic that of Haskell's
Control.Concurrent.STM, but this is not entirely possible due to Go's type
system; we are forced to use interface{} and type assertions. Furthermore,
Haskell can enforce at compile time that STM variables are not modified outside
the STM monad. This is not possible in Go, so be especially careful when using
pointers in your STM code. Another significant departure is that stm.Atomically
does not return a value. This shortens transaction code a bit, but I'm not 100%
it's the right decision. (The alternative would be for every transaction
function to return an interface{}.)
Fedora Account System Username: eclipseo
--
You are receiving this mail because:
You are on the CC list for the bug.
You are always notified about changes to this product and component