[ 
https://issues.apache.org/jira/browse/JENA-1090?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15369660#comment-15369660
 ] 

ASF GitHub Bot commented on JENA-1090:
--------------------------------------

Github user afs commented on the issue:

    https://github.com/apache/jena/pull/153
  
    Semaphore hand out permits so 0 means no permit.
    
    There is a `semaStart.release()` in `run()` and the corresponding `acquire` 
in the lambda in `create` which has comments. Renaming the local `semaStart` 
would help.
    
    The `AtomicReference` can be combined in `AtomicReference<Throwable>`.
    
    `ThreadTxn` came about for testing purposes - `Txn` is the main 
contribution.


> Add transaction handling convenience code
> -----------------------------------------
>
>                 Key: JENA-1090
>                 URL: https://issues.apache.org/jira/browse/JENA-1090
>             Project: Apache Jena
>          Issue Type: Improvement
>          Components: ARQ
>            Reporter: Andy Seaborne
>
> The code 
> [Txn|https://github.com/afs/jena-rdfconnection/blob/master/src/main/java/rdfconnection/Txn.java]
>  provides a convenient way to write common patterns of transaction usage 
> including 
> {noformat}
>  Txn.executeWrite(conn, () ->{
>        ... write transaction code ...
>         }) ;
> {noformat}
> which provides the pattern:
> {noformat}
> txn.begin(ReadWrite.WRITE) ;
> try {
>     ... write transaction code ...
>     txn.commit() ;
> }
>  finally { txn.end() ; }
> {noformat}
> {{Txn}} also checks for being in a transaction already.
> There are forms to return a value from the code inside the transaction block 
> as well.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to