2009
DOI: 10.1145/1543135.1542479
|View full text |Cite
|
Sign up to set email alerts
|

Safe and timely updates to multi-threaded programs

Abstract: Many dynamic updating systems have been developed that enable a program to be patched while it runs, to fix bugs or add new features. This paper explores techniques for supporting dynamic updates to multi-threaded programs, focusing on the problem of applying an update in a timely fashion while still producing correct behavior. Past work has shown that this tension of safety versus timeliness can be balanced for single-threaded programs. For multi-threaded programs, the task is more dif… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

1
33
0

Year Published

2009
2009
2020
2020

Publication Types

Select...
3
3
1

Relationship

1
6

Authors

Journals

citations
Cited by 28 publications
(35 citation statements)
references
References 13 publications
1
33
0
Order By: Relevance
“…Boyapati et al [11] implement this model, as described in Section 5. Our experience and that of others [5,32,30,24] indicate that our model expresses many updates well. We leave to future work a detailed investigation of the semantics and expressiveness of both models.…”
Section: Class and Object Transformerssupporting
confidence: 62%
See 3 more Smart Citations
“…Boyapati et al [11] implement this model, as described in Section 5. Our experience and that of others [5,32,30,24] indicate that our model expresses many updates well. We leave to future work a detailed investigation of the semantics and expressiveness of both models.…”
Section: Class and Object Transformerssupporting
confidence: 62%
“…JVOLVE takes the opposite tack of forcing old object fields to point to up-to-date objects, and thus requires no special language support. Moreover, JVOLVE's model follows that of earlier work [5,32,30,24] which has proven its effectiveness on a half-dozen realistic applications across several years' worth of releases. However, further research to understand the costs and benefits of the two updating models would be useful.…”
Section: Related Workmentioning
confidence: 97%
See 2 more Smart Citations
“…Such updates are inherently unsafe if performed at an arbitrary point in time: running threads might run both old and new code in an incoherent manner while old methods on the stack might presume type signatures that are no longer valid, possibly leading to run-time type errors. Quiescent global update points must be selected to ensure safe updates, but such points may be difficult to reach for multi-threaded systems [NH09,SHM09]. More generally, a global update might not be possible due to the nature of the change, for example it would fail to update anonymous connections to an FTP server that mandates authentication after the update: the missing information cannot be provided a posteriori [NHSO06].…”
Section: Introductionmentioning
confidence: 99%