Distributed programming in Argus
Communications of the ACM
Transactional memory: architectural support for lock-free data structures
ISCA '93 Proceedings of the 20th annual international symposium on computer architecture
Composing first-class transactions
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing
A distributed object-oriented framework for dependable multiparty interactions
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Distributed transactions for reliable systems
Proceedings of the tenth ACM symposium on Operating systems principles
Combining tasking and transactions, part II: open multithreaded transactions
IRTAW '00 Proceedings of the 10th international workshop on Real-time Ada workshop
Software transactional memory for dynamic-sized data structures
Proceedings of the twenty-second annual symposium on Principles of distributed computing
Fault Tolerance in Concurrent Object-Oriented Software through Coordinated Error Recovery
FTCS '95 Proceedings of the Twenty-Fifth International Symposium on Fault-Tolerant Computing
ISORC '01 Proceedings of the Fourth International Symposium on Object-Oriented Real-Time Distributed Computing
Language support for lightweight transactions
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Composable memory transactions
Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming
Advanced contention management for dynamic software transactional memory
Proceedings of the twenty-fourth annual ACM symposium on Principles of distributed computing
Exceptions and side-effects in atomic blocks
Science of Computer Programming - Special issue: Concurrency and synchronization in Java programs
Stabilizers: a modular checkpointing abstraction for concurrent functional programs
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Journal of Systems and Software
xCalls: safe I/O in memory transactions
Proceedings of the 4th ACM European conference on Computer systems
Failboxes: Provably Safe Exception Handling
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles
Implementing Retry - Featuring AOP
LADC '09 Proceedings of the 2009 Fourth Latin-American Symposium on Dependable Computing
DISC'09 Proceedings of the 23rd international conference on Distributed computing
Transactional Memory, 2nd Edition
Transactional Memory, 2nd Edition
DISC'06 Proceedings of the 20th international conference on Distributed Computing
A lazy snapshot algorithm with eager validation
DISC'06 Proceedings of the 20th international conference on Distributed Computing
Exception handling: a field study in Java and .NET
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Democratizing transactional programming
Middleware'11 Proceedings of the 12th ACM/IFIP/USENIX international conference on Middleware
Democratizing transactional programming
Proceedings of the 12th International Middleware Conference
Automatic recovery from runtime failures
Proceedings of the 2013 International Conference on Software Engineering
A framework for self-healing software systems
Proceedings of the 2013 International Conference on Software Engineering
Hi-index | 0.01 |
In concurrent programs raising an exception in one thread does not prevent others from operating on an inconsistent shared state. Instead, exceptions should ideally be handled in coordination by all the threads that are affected by their cause. In this paper, we propose a Java language extension for coordinated exception handling where a named abox (atomic box) is used to demarcate a region of code that must execute atomically and in isolation. Upon an exception raised inside an abox, threads executing in dependent aboxes, roll back their changes, and execute their recovery handler in coordination. We provide a dedicated compiler framework, CXH, to evaluate experimentally our atomic box construct. Our evaluation indicates that, in addition to enabling recovery, an atomic box executes a reasonably small region of code twice as fast as when using a failbox, the existing coordination alternative that has no recovery support.