• Documents
  • Authors
  • Tables
  • Log in
  • Sign up
  • MetaCart
  • DMCA
  • Donate

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations

Coordination operators and their composition under the actor-role-coordinator (ARC) model. (2011)

by M Song, S Ren
Venue:SIGBED Rev.,
Add To MetaCart

Tools

Sorted by:
Results 1 - 1 of 1

Why do scala developers mix the actor model with other concurrency models

by Samira Tasharofi , Peter Dinges , Ralph Johnson - In Proc. of the 27th European Conference on Object-Oriented Programming , 2013
"... Abstract. Mixing the actor model with other concurrency models in a single program can break the actor abstraction. This increases the chance of creating deadlocks and data races-two mistakes that are hard to make with actors. Furthermore, it prevents the use of many advanced testing, modeling, and ..."
Abstract - Cited by 8 (0 self) - Add to MetaCart
Abstract. Mixing the actor model with other concurrency models in a single program can break the actor abstraction. This increases the chance of creating deadlocks and data races-two mistakes that are hard to make with actors. Furthermore, it prevents the use of many advanced testing, modeling, and verification tools for actors, as these require pure actor programs. This study is the first to point out the phenomenon of mixing concurrency models by Scala developers and to systematically identify the factors leading to it. We studied 15 large, mature, and actively maintained actor programs written in Scala and found that 80% of them mix the actor model with another concurrency model. Consequently, a large part of real-world actor programs does not use actors to their fullest advantage. Inspection of the programs and discussion with the developers reveal two reasons for mixing that can be influenced by researchers and library-builders: weaknesses in the actor library implementations, and shortcomings of the actor model itself.
(Show Context)

Citation Context

...ra variables and implement more complex logic to handle the asynchrony in the actor model that is not present in the sharedmemory model. Specifically, for developers who are new to the actor model, understanding and managing coordination in an asynchronous and no-shared state model might be harder than in the shared-memory model. To address this problem, prior work has extended the Scala actor library with coordination patterns used in parallel programming, for example joins [12] and divide-and-conquer tasks [15]. More advanced coordination mechanisms for actor systems have also been proposed [4,31,9,27]. However,to the best of our knowledge, none has been integrated with a widely used actor library. 1 class DataProcessor extends Actor { 2 3 var curCount = 0 4 var totalCount = 0 5 var results: Array[Result] = 6 var customer: OutputChannel[Any] = 7 8 def act() = loop { 9 react { 10 case ProcessData(dataArray: Array[Data]) => { 11 results = new Array[Result](dataArray.length) 12 customer = sender 13 totalCount = dataArray.length 14 curCount = 0 15 16 for (i <− 0 to totalCount − 1) { 17 var worker = new Worker().start() 18 worker ! Process(dataArray(i), i) 19 } 20 } 21 case ProcessResult(result:...

Powered by: Apache Solr
  • About CiteSeerX
  • Submit and Index Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2019 The Pennsylvania State University