CINXE.COM
CAKC 2024 - Concurrent Algorithms in Kotlin Coroutines Tutorial - ISSTA/ECOOP 2024
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <link href="https://conf.researchr.org/favicon.ico?28d37e6d7e5e12d24c39bdba0f4f3cfd" rel="shortcut icon" type="image/x-icon" /> <link href="https://conf.researchr.org/stylesheets/common_.css?d7bcca3579a066193caf560ede9d6399" rel="stylesheet" type="text/css" /> <title>CAKC 2024 - Concurrent Algorithms in Kotlin Coroutines Tutorial - ISSTA/ECOOP 2024</title> <script type="text/javascript">var show_webdsl_debug=false;</script> <script type="text/javascript">var contextpath="https://conf.researchr.org";</script> <link rel="stylesheet" href="https://conf.researchr.org/stylesheets/bootstrap/css/bootstrap.min.css?7f89537eaf606bff49f5cc1a7c24dbca" type="text/css" /><link rel="stylesheet" href="https://conf.researchr.org/stylesheets/conf.css?d8ff81ab1f2387936557f525e4e8eb20" type="text/css" /><link rel="stylesheet" href="https://conf.researchr.org/getFile/463efccf-03e7-4e1c-a4ad-5a63a59aeeac/ISSTA-ECOOP.css?1712282347741" type="text/css" /><link rel="stylesheet" href="https://conf.researchr.org/stylesheets/flatpickr-4.3.2.min.css?8eedb7a0f2455c0dbbbbcc46c4172c0d" type="text/css" /><link rel="stylesheet" href="https://conf.researchr.org/stylesheets/theme.bootstrap_3.min.css?6867e70881e6ed2c03b6c9cf9c3152e0" type="text/css" /><script type="text/javascript" src="//code.jquery.com/jquery-3.5.1.min.js"></script> <script type="text/javascript" src="https://conf.researchr.org/javascript/faceted-filtering.js?b66007ca48ecd1d87e1cdd60e4e42366"></script> <script type="text/javascript" src="https://conf.researchr.org/javascript/flatpickr-4.3.2.min.js?c2885c17ae5fd471c9a40c437e8a2736"></script> <script type="text/javascript" src="https://conf.researchr.org/javascript/jquery.tablesorter.combined.min.js?285b21976326641f8f1b910492e6d5d0"></script> <script type="text/javascript" src="https://conf.researchr.org/javascript/jquery.tablesorter.pager.min.js?4551cdfea66f45a11ae5548f3d50a06f"></script> <script type="text/javascript" src="https://conf.researchr.org/javascript/tablesorter-init.js?ee6babedf1a6be960e4543a1bb57b421"></script> <script type="text/javascript" src="https://conf.researchr.org/javascript/bootstrap/js/bootstrap.min.js?2f34b630ffe30ba2ff2b91e3f3c322a1"></script> <script type="text/javascript" src="https://conf.researchr.org/javascript/notify.min.js?e86d399917a84b69a4683f504c7a7813"></script> <script type="text/javascript" src="https://conf.researchr.org/javascript/ajax.js?2dbd1cc4f8f2d52ae9c879d7346f4f8a"></script> <script type="text/javascript">(function($){ $(document).ready(function(){ $('ul.dropdown-menu [data-toggle=dropdown]').on('click', function(event) { event.preventDefault(); event.stopPropagation(); $(this).parent().siblings().removeClass('open'); $(this).parent().toggleClass('open'); }); }); })(jQuery); </script> <script type="text/javascript"> $(window).on('popstate', function(){ $('.modal.in').modal('hide') }); </script><script type="text/javascript">(function(){ var post_process_function = function(n){ var node=(n&&n.nodeType === 1)?n:document; $(node).find('.modal').on( 'shown.bs.modal', function(){ if(history.pushState){ history.pushState({ id: 'modal', modalId: $(this).attr('id') }, null, window.location.href); } } ).on( 'hidden.bs.modal', function (){ if( history.state != null && history.state.modalId == $(this).attr('id') ){ history.back(); } } ); }; var original_post_process_func = ajax_post_process; ajax_post_process = function(){ original_post_process_func.apply(this,arguments); post_process_function.apply(this,arguments); }; $(document).ready( post_process_function ); })(); </script> <script>window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}gtag('js', new Date());gtag('config', 'G-4G0QWEKVQS', {'cookie_domain': 'auto', 'anonymizeIp': true });gtag('config', 'UA-9607501-2', {'cookie_domain': 'auto', 'anonymizeIp': true });</script> <meta prefix='og: http://ogp.me/ns#' property='og:image' content='https://conf.researchr.org/getImage/issta-ecoop-2024/carousel/_fileadmin_Assets_services_Fotodownload_Gebaeude_Karlsplatz_karlsplatz_hauptgebaeude_nacht_c_tu_wien.jpg?1687952698000'> <script type="text/javascript">(function(){ var post_process_function = function(n){ var node=(n&&n.nodeType === 1)?n:document; $(node).find('input.flatpickr:not([id])').focusout( function(){ this.dispatchEvent( new KeyboardEvent('keydown',{keyCode:13, bubbles: true}) ); } ); }; var original_post_process_func = ajax_post_process; ajax_post_process = function(){ original_post_process_func.apply(this,arguments); post_process_function.apply(this,arguments); }; $(document).ready( post_process_function ); })(); </script> <script type="text/javascript">function addEventModalLoadOnClick( containerNode ){ $(containerNode).find( "a[data-event-modal]" ).on("click", function(e){ var eventId = $(this).data("event-modal"); var modalElem = $("#modal-" + eventId); if(modalElem.length){ modalElem.modal({ backdrop: 'static', keyboard: true}, 'show'); } else { var loaderElem = $("#event-modal-loader"); loaderElem.find("input.event-id-input").val( eventId ); loaderElem.find("#load-modal-action").click(); } e.preventDefault(); } ); } </script><script type="text/javascript">function addStarredEventOnClick( containerNode ){ $(containerNode).find( "[data-event-star]" ).on("click", function(e){ var eventId = $(this).data("event-star"); var starEventFormElem = $("#event-star-form"); starEventFormElem.find("input.event-id-input").val( eventId ); starEventFormElem.find("#star-event-action").click(); e.preventDefault(); e.stopPropagation(); } ); } </script><script type="text/javascript">function pauseOnCloseModal( modalid ){ //pauses video (only youtube at the moment) when closing modal $('#' + modalid).on('hidden.bs.modal', function () { $(this).find('.embed-container iframe[src*=enablejsapi]').each( function(){ this.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}', '*') } ); } ) } </script> <meta prefix='og: http://ogp.me/ns#' property='og:description' content='Most mainstream programming languages now offer the async-await mechanism or coroutines abstraction for asynchronous programming. Kotlin stands out with coroutines that occupy a unique spot in the overall language design, using a single suspend modifier at the language level. Kotlin Coroutines are massively adopted by the Kotlin user base, being a recommended solution to concurrency in Android programming and offering concise syntax for reactive server-side applications. In this tutorial, we will delve deep into Kotlin Coroutines. Starting with a high-level discussion of what coroutines a ...'> <script type="text/javascript">$(document).ready( function(){ $('#program-menu a[data-fltr-type]').on('click', function(event){ event.preventDefault(); window.location = $(this).attr('href') + "?" + encodeURIComponent( $(this).data('fltr-type') ) + '=' + encodeURIComponent( $(this).data('fltr-val') ); }) }) </script> <script type="text/javascript">var ignoreHashChange = false; function hashChangeFunc(){ // show active tab on hash in url if (window.location.hash !== ''){ var hashTargetAll = $('a[href="' + window.location.hash + '"]'); if(hashTargetAll.length){ var hashTarget = hashTargetAll.filter('[data-toggle="tab"]') if( hashTarget.length ){ hashTarget = hashTarget.first(); hashTarget.tab('show'); } else { hashTarget = hashTargetAll.first(); } // and open parent tabs in case the target element is nested in a tab var parentPane = hashTarget.closest( '.tab-pane' ); if(parentPane.length){ $('.nav a[href="#'+ parentPane.attr('id') +'"]').tab('show'); } var parentCollapse = hashTarget.closest( '.panel-collapse:not(.in)' ).collapse('show'); } } return false; } $(document).ready(function(){ var tabFromRequestUrl = window.location.hash !== '' ? $('a[href="' + window.location.hash + '"][data-toggle="tab"]') : []; var initUrlHash = window.location.hash; hashChangeFunc() if( tabFromRequestUrl.length ){ //Prevent the browser to auto-scroll to the anchor of the tab window.location.hash = ""; } //make in-page #links open the tabs if ($._data( $(window)[0], 'events' ).hashchange == undefined){ $(window).on('hashchange', hashChangeFunc); } if(tabFromRequestUrl.length){ setTimeout( function(){ ignoreHashChange = true; history.replaceState(null, null, initUrlHash); ignoreHashChange = false; }, 10 ); } }); var autoTabFunction = function(node){ var isActivatingFirstTab = false; // remember the hash in the URL without jumping $('a[data-toggle="tab"]:not(.no-hash):not(.bound)').addClass('bound').on('shown.bs.tab', function(e){ if(!isActivatingFirstTab){ var newhash = '#' + $(e.target).attr('href').substr(1); if(history.replaceState){ history.replaceState(null, null, newhash); } else{ location.hash = newhash; } } }); //When no tab is active, set the first one to active $(node).find('.nav-tabs:not(.bound), .nav-pills:not(.bound)').addClass('bound').each(function(){ if( $(this).children().length > 0 && 1 > $(this).find('.active').length){ const firstItem = $(this).find('a[data-toggle="tab"]').first(); isActivatingFirstTab = true; firstItem.tab('show'); isActivatingFirstTab = false; } }); } </script> <script async src="https://www.googletagmanager.com/gtag/js?id=G-4G0QWEKVQS"></script> <meta prefix='og: http://ogp.me/ns#' property='og:title' content='CAKC 2024 - Concurrent Algorithms in Kotlin Coroutines Tutorial - ISSTA/ECOOP 2024'> <!--[if IE 9]><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/eligrey-classlist-js-polyfill@1.2.20171210/classList.min.js"></script><![endif]--> <meta name='description' content='Most mainstream programming languages now offer the async-await mechanism or coroutines abstraction for asynchronous programming. Kotlin stands out with coroutines that occupy a unique spot in the overall language design, using a single suspend modifier at the language level. Kotlin Coroutines are massively adopted by the Kotlin user base, being a recommended solution to concurrency in Android programming and offering concise syntax for reactive server-side applications. In this tutorial, we will delve deep into Kotlin Coroutines. Starting with a high-level discussion of what coroutines a ...'> </head> <body id="home"><div class="frame"><div class="logobar"><div class="container"><a href="https://conf.researchr.org/home/issta-ecoop-2024" class="navbar-brand navigate"><span class="brand-text">ISSTA/ECOOP 2024</span></a><div class="place">Mon 16 - Fri 20 September 2024 <a href="https://conf.researchr.org/venue/issta-ecoop-2024/ecoop-issta-2024-venue" class="navigate">Vienna, Austria</a></div></div></div><div class="navbar navbar-default"><div class="container"><div class="navbar-header"><button type="button" data-toggle="collapse" data-target="#navigationbar" class="navbar-toggle"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button></div><div id="navigationbar" class="navigationbar collapse navbar-collapse"><ul class="block nav navbar-nav"><li class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Attending <span class="caret"></span></a><ul class="block dropdown-menu"><li class="block"><a href="https://conf.researchr.org/venue/issta-ecoop-2024/ecoop-issta-2024-venue" class="navigate">Venue: Vienna University of Technology (TU Wien) - Campus Gusshaus</a></li><li class="block"><a href="https://conf.researchr.org/venue/issta-ecoop-2024/issta-ecoop-2024-venue" class="navigate">Reception: Vienna University of Technology (TU Wien) - Campus Karlsplatz</a></li><li class="block"><a href="https://conf.researchr.org/venue/issta-ecoop-2024/issta-ecoop-2024-venue2" class="navigate">Banquet: Fuhrgassl-Huber</a></li><li class="block"><a href="https://conf.researchr.org/attending/issta-ecoop-2024/diversity-and-inclusion" class="navigate">Equity, Diversity and Inclusion</a></li><li class="block"><a href="https://conf.researchr.org/attending/issta-ecoop-2024/conduct" class="navigate">Code of Conduct</a></li><li class="block"><a href="https://conf.researchr.org/attending/issta-ecoop-2024/visa-support-letters" class="navigate">Visa Support Letters</a></li><li class="block"><a href="https://conf.researchr.org/attending/issta-ecoop-2024/accomodation" class="navigate">Accomodation</a></li><li class="block"><a href="https://conf.researchr.org/attending/issta-ecoop-2024/registration" class="navigate">Registration</a></li></ul></li><li class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Program <span class="caret"></span></a><ul id="program-menu" class="block dropdown-menu"><li class="block"><a href="https://conf.researchr.org/program/issta-ecoop-2024/program-issta-ecoop-2024/" class="navigate">ISSTA/ECOOP Program</a></li><li class="block"><a href="https://conf.researchr.org/program/issta-ecoop-2024/program-issta-ecoop-2024/" data-fltr-type="prog" data-fltr-val="Your Program" class="navigate"><span class="glyphicon glyphicon-star"></span> Your Program</a></li><li class="block"><a href="https://conf.researchr.org/info/issta-ecoop-2024/schedule-overview" class="navigate">Schedule Overview</a></li><li class="block divider"></li><li class="block"><a href="https://conf.researchr.org/program/issta-ecoop-2024/program-issta-ecoop-2024/" data-fltr-type="date" data-fltr-val="Mon 16 Sep 2024" class="navigate">Mon 16 Sep</a></li><li class="block"><a href="https://conf.researchr.org/program/issta-ecoop-2024/program-issta-ecoop-2024/" data-fltr-type="date" data-fltr-val="Tue 17 Sep 2024" class="navigate">Tue 17 Sep</a></li><li class="block"><a href="https://conf.researchr.org/program/issta-ecoop-2024/program-issta-ecoop-2024/" data-fltr-type="date" data-fltr-val="Wed 18 Sep 2024" class="navigate">Wed 18 Sep</a></li><li class="block"><a href="https://conf.researchr.org/program/issta-ecoop-2024/program-issta-ecoop-2024/" data-fltr-type="date" data-fltr-val="Thu 19 Sep 2024" class="navigate">Thu 19 Sep</a></li><li class="block"><a href="https://conf.researchr.org/program/issta-ecoop-2024/program-issta-ecoop-2024/" data-fltr-type="date" data-fltr-val="Fri 20 Sep 2024" class="navigate">Fri 20 Sep</a></li></ul></li><li id="tracks-in-navbar" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Tracks <span class="caret"></span></a><ul class="block dropdown-menu multi-column columns-3"><div class="row"><div class="col-sm-5"><ul class="block multi-column-dropdown"><li class="block dropdown-header">ISSTA/ECOOP 2024</li><li class="block"><a href="https://conf.researchr.org/track/issta-ecoop-2024/issta-ecoop-2024-diversity" class="navigate">Diversity</a></li><li class="block"><a href="https://conf.researchr.org/track/issta-ecoop-2024/issta-ecoop-2024-doctoral-symposium" class="navigate">Doctoral Symposium</a></li><li class="block"><a href="https://conf.researchr.org/track/issta-ecoop-2024/issta-ecoop-2024-sponsorship" class="navigate">Sponsorship</a></li><li class="block"><a href="https://conf.researchr.org/track/issta-ecoop-2024/issta-ecoop-2024-student-volunteers" class="navigate">Student Volunteers</a></li><li class="block"><a href="https://conf.researchr.org/track/issta-ecoop-2024/issta-ecoop-2024-tool-demonstrations" class="navigate">Tool Demonstrations</a></li><li class="block"><a href="https://conf.researchr.org/track/issta-ecoop-2024/issta-ecoop-2024-workshops" class="navigate">Workshops</a></li></ul></div><div class="col-sm-7"><ul class="block multi-column-dropdown"><li class="block dropdown-header">Co-hosted Conferences</li><li class="dropdown dropdown-submenu "><a href="#" data-toggle="dropdown" class="dropdown-toggle"><strong>ECOOP</strong></a><ul class="block dropdown-menu"><li class="block"><a href="https://2024.ecoop.org" class="navigate"><span class="glyphicon glyphicon-home"></span> ECOOP</a></li><li class="block"><a href="https://2024.ecoop.org/track/ecoop-2024-awards" class="navigate"><strong>ECOOP</strong> Awards</a></li><li class="block"><a href="https://2024.ecoop.org/track/ecoop-2024-papers" class="navigate"><strong>ECOOP</strong> Technical Papers</a></li><li class="block"><a href="https://2024.ecoop.org/track/ecoop-2024-artifact-evaluation" class="navigate"><strong>ECOOP</strong> Artifact Evaluation</a></li></ul></li><li class="dropdown dropdown-submenu "><a href="#" data-toggle="dropdown" class="dropdown-toggle"><strong>ISSTA</strong></a><ul class="block dropdown-menu"><li class="block"><a href="https://2024.issta.org" class="navigate"><span class="glyphicon glyphicon-home"></span> ISSTA</a></li><li class="block"><a href="https://2024.issta.org/track/issta-2024-papers" class="navigate"><strong>ISSTA</strong> Technical Papers</a></li><li class="block"><a href="https://2024.issta.org/track/issta-2024-artifact-evaluation" class="navigate"><strong>ISSTA</strong> Artifact Evaluation</a></li><li class="block"><a href="https://2024.issta.org/track/issta-2024-keynotes" class="navigate"><strong>ISSTA</strong> Keynotes</a></li></ul></li><li class="block"><a href="https://conf.researchr.org/home/issta-ecoop-2024/mplr-2024" class="navigate"><strong>MPLR</strong> </a></li><li class="block dropdown-header">Workshops</li><li class="block"><a href="https://conf.researchr.org/home/issta-ecoop-2024/a-test-2024" class="navigate"><strong>A-TEST</strong> </a></li><li class="block"><a href="https://conf.researchr.org/home/issta-ecoop-2024/debt-2024" class="navigate"><strong>DEBT</strong> </a></li><li class="block"><a href="https://conf.researchr.org/home/issta-ecoop-2024/FTfJP-2024" class="navigate"><strong>FTfJP</strong> </a></li><li class="block"><a href="https://conf.researchr.org/home/issta-ecoop-2024/fuzzing-2024" class="navigate"><strong>FUZZING</strong> </a></li><li class="block"><a href="https://conf.researchr.org/home/issta-ecoop-2024/gamify-2024" class="navigate"><strong>Gamify</strong> </a></li><li class="block"><a href="https://conf.researchr.org/home/issta-ecoop-2024/ICOOOLPS-2024" class="navigate"><strong>ICOOOLPS</strong> </a></li><li class="block"><a href="https://conf.researchr.org/home/issta-ecoop-2024/met-2024" class="navigate"><strong>MET</strong> </a></li><li class="block"><a href="https://conf.researchr.org/home/issta-ecoop-2024/plaid-2024" class="navigate"><strong>PLAID</strong> </a></li><li class="block"><a href="https://conf.researchr.org/home/issta-ecoop-2024/plf-2024" class="navigate"><strong>PLF</strong> Programming Local-first Software</a></li><li class="block"><a href="https://conf.researchr.org/home/issta-ecoop-2024/vortex-2024" class="navigate"><strong>VORTEX</strong> </a></li><li class="block dropdown-header">Tutorials</li><li class="block"><a href="https://conf.researchr.org/home/issta-ecoop-2024/cakc-2024" class="navigate"><strong>CAKC</strong> Concurrent Algorithms in Kotlin Coroutines Tutorial</a></li></ul></div></div></ul></li><li class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Organization <span class="caret"></span></a><ul class="block dropdown-menu multi-column columns-2"><div class="row"><div class="col-sm-6"><ul class="block multi-column-dropdown"><li class="block dropdown-header">ISSTA/ECOOP 2024 Committees</li><li class="block dropdown-header">Track Committees </li><li class="block"><a href="https://conf.researchr.org/committee/issta-ecoop-2024/issta-ecoop-2024-doctoral-symposium-doctoral-symposium-committee" class="navigate"><strong>Doctoral Symposium</strong></a></li><li class="block"><a href="https://conf.researchr.org/committee/issta-ecoop-2024/issta-ecoop-2024-sponsorship-sponsorship-committee" class="navigate"><strong>Sponsorship</strong></a></li><li class="block"><a href="https://conf.researchr.org/committee/issta-ecoop-2024/issta-ecoop-2024-student-volunteers-student-volunteers-committee" class="navigate"><strong>Student Volunteers</strong></a></li><li class="block"><a href="https://conf.researchr.org/committee/issta-ecoop-2024/issta-ecoop-2024-tool-demonstrations-program-committee" class="navigate"><strong>Tool Demonstrations</strong></a></li><li class="block"><a href="https://conf.researchr.org/committee/issta-ecoop-2024/issta-ecoop-2024-workshops-workshops-committee" class="navigate"><strong>Workshops</strong></a></li><li class="block dropdown-header">Contributors</li><li class="block"><a href="https://conf.researchr.org/people-index/issta-ecoop-2024" class="navigate"><span class="glyphicon glyphicon-search"></span><sup><span class="glyphicon glyphicon-user"></span></sup> People Index</a></li></ul></div><div class="col-sm-6"><ul class="block multi-column-dropdown"><li class="block dropdown-header">Co-hosted Conferences</li><li class="dropdown dropdown-submenu "><a href="#" data-toggle="dropdown" class="dropdown-toggle"><strong>ECOOP</strong></a><ul class="block dropdown-menu"><li class="block"><a href="https://2024.ecoop.org/committee/ecoop-2024-organizing-committee" class="navigate">Organizing Committee</a></li><li class="block"><a href="https://2024.ecoop.org/committee/ecoop-2024-papers-program-committee" class="navigate"><strong>Technical Papers</strong> <small>Program Committee</small></a></li><li class="block"><a href="https://2024.ecoop.org/committee/ecoop-2024-papers-extended-review-committee-and-external-reviewers" class="navigate"><strong>Technical Papers</strong> <small>Extended Review Committee and External Reviewers</small></a></li><li class="block"><a href="https://2024.ecoop.org/committee/ecoop-2024-artifact-evaluation-artifact-evaluation-committee" class="navigate"><strong>Artifact Evaluation</strong></a></li></ul></li><li class="dropdown dropdown-submenu "><a href="#" data-toggle="dropdown" class="dropdown-toggle"><strong>ISSTA</strong></a><ul class="block dropdown-menu"><li class="block"><a href="https://2024.issta.org/committee/issta-2024-organizing-committee" class="navigate">Organizing Committee</a></li><li class="block"><a href="https://2024.issta.org/committee/issta-2024-papers-program-committee" class="navigate"><strong>Technical Papers</strong></a></li><li class="block"><a href="https://2024.issta.org/committee/issta-2024-artifact-evaluation-artifact-evaluation-committee" class="navigate"><strong>Artifact Evaluation</strong></a></li></ul></li><li class="dropdown dropdown-submenu "><a href="#" data-toggle="dropdown" class="dropdown-toggle"><strong>MPLR</strong></a><ul class="block dropdown-menu"><li class="block"><a href="https://conf.researchr.org/committee/issta-ecoop-2024/mplr-2024-papers-organizing-committee" class="navigate">Organizing Committee</a></li><li class="block"><a href="https://conf.researchr.org/committee/issta-ecoop-2024/mplr-2024-papers-program-committee" class="navigate">Program Committee</a></li></ul></li><li class="block dropdown-header">Workshops</li><li class="dropdown dropdown-submenu "><a href="#" data-toggle="dropdown" class="dropdown-toggle"><strong>A-TEST</strong></a><ul class="block dropdown-menu"><li class="block"><a href="https://conf.researchr.org/committee/issta-ecoop-2024/a-test-2024-papers-organizing-committee" class="navigate">Organizing Committee</a></li><li class="block"><a href="https://conf.researchr.org/committee/issta-ecoop-2024/a-test-2024-papers-programme-committee" class="navigate">Programme Committee</a></li></ul></li><li class="dropdown dropdown-submenu "><a href="#" data-toggle="dropdown" class="dropdown-toggle"><strong>DEBT</strong></a><ul class="block dropdown-menu"><li class="block"><a href="https://conf.researchr.org/committee/issta-ecoop-2024/debt-2024-papers-organizing-committee" class="navigate">Organizing Committee</a></li><li class="block"><a href="https://conf.researchr.org/committee/issta-ecoop-2024/debt-2024-papers-program-committee" class="navigate">Program Committee</a></li></ul></li><li class="dropdown dropdown-submenu "><a href="#" data-toggle="dropdown" class="dropdown-toggle"><strong>FTfJP</strong></a><ul class="block dropdown-menu"><li class="block"><a href="https://conf.researchr.org/committee/issta-ecoop-2024/FTfJP-2024-papers-organizing-committee" class="navigate">Organizing Committee</a></li><li class="block"><a href="https://conf.researchr.org/committee/issta-ecoop-2024/FTfJP-2024-papers-program-committee" class="navigate">Program Committee</a></li></ul></li><li class="dropdown dropdown-submenu "><a href="#" data-toggle="dropdown" class="dropdown-toggle"><strong>FUZZING</strong></a><ul class="block dropdown-menu"><li class="block"><a href="https://conf.researchr.org/committee/issta-ecoop-2024/fuzzing-2024-papers-organizing-committee" class="navigate">Organizing Committee</a></li><li class="block"><a href="https://conf.researchr.org/committee/issta-ecoop-2024/fuzzing-2024-papers-program-committee" class="navigate">Program Committee</a></li></ul></li><li class="dropdown dropdown-submenu "><a href="#" data-toggle="dropdown" class="dropdown-toggle"><strong>Gamify</strong></a><ul class="block dropdown-menu"><li class="block small"><a href="https://conf.researchr.org/home/issta-ecoop-2024/gamify-2024" class="navigate"><span class="glyphicon glyphicon-home"></span> N/A - check homepage</a></li></ul></li><li class="dropdown dropdown-submenu "><a href="#" data-toggle="dropdown" class="dropdown-toggle"><strong>ICOOOLPS</strong></a><ul class="block dropdown-menu"><li class="block"><a href="https://conf.researchr.org/committee/issta-ecoop-2024/ICOOOLPS-2024-papers-organizing-committee" class="navigate">Organizing Committee</a></li><li class="block"><a href="https://conf.researchr.org/committee/issta-ecoop-2024/ICOOOLPS-2024-papers-program-committee" class="navigate">Program Committee</a></li></ul></li><li class="dropdown dropdown-submenu "><a href="#" data-toggle="dropdown" class="dropdown-toggle"><strong>MET</strong></a><ul class="block dropdown-menu"><li class="block"><a href="https://conf.researchr.org/committee/issta-ecoop-2024/met-2024-papers-organizing-committee" class="navigate">Organizing Committee</a></li><li class="block"><a href="https://conf.researchr.org/committee/issta-ecoop-2024/met-2024-papers-programme-committee" class="navigate">Programme Committee</a></li></ul></li><li class="dropdown dropdown-submenu "><a href="#" data-toggle="dropdown" class="dropdown-toggle"><strong>PLAID</strong></a><ul class="block dropdown-menu"><li class="block"><a href="https://conf.researchr.org/committee/issta-ecoop-2024/plaid-2024-papers-organizing-committee" class="navigate">Organizing Committee</a></li><li class="block"><a href="https://conf.researchr.org/committee/issta-ecoop-2024/plaid-2024-papers-program-committee" class="navigate">Program Committee</a></li></ul></li><li class="dropdown dropdown-submenu "><a href="#" data-toggle="dropdown" class="dropdown-toggle"><strong>PLF</strong></a><ul class="block dropdown-menu"><li class="block"><a href="https://conf.researchr.org/committee/issta-ecoop-2024/plf-2024-papers-organizing-committee" class="navigate">Organizing Committee</a></li><li class="block"><a href="https://conf.researchr.org/committee/issta-ecoop-2024/plf-2024-papers-program-committee" class="navigate">Program Committee</a></li></ul></li><li class="dropdown dropdown-submenu "><a href="#" data-toggle="dropdown" class="dropdown-toggle"><strong>VORTEX</strong></a><ul class="block dropdown-menu"><li class="block"><a href="https://conf.researchr.org/committee/issta-ecoop-2024/vortex-2024-papers-organizing-committee" class="navigate">Organizing Committee</a></li><li class="block"><a href="https://conf.researchr.org/committee/issta-ecoop-2024/vortex-2024-papers-program-committee" class="navigate">Program Committee</a></li></ul></li><li class="block dropdown-header">Tutorials</li><li class="dropdown dropdown-submenu "><a href="#" data-toggle="dropdown" class="dropdown-toggle"><strong>CAKC</strong></a><ul class="block dropdown-menu"><li class="block"><a href="https://conf.researchr.org/committee/issta-ecoop-2024/cakc-2024-papers-organizing-committee" class="navigate">Organizing Committee</a></li></ul></li></ul></div></div></ul></li><li class="block"><a href="https://conf.researchr.org/search/issta-ecoop-2024//all" class="navigate"><span class="glyphicon glyphicon-search"></span><span class="hidden-sm"> Search</span></a></li><li class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle"><span class="hidden-sm">Series <span class="caret"></span></span><span title="Series" class="visible-sm"><span class="glyphicon glyphicon-repeat"></span> <span class="caret"></span></span></a><ul class="block dropdown-menu"><li class="block"><a href="https://conf.researchr.org/series/ecoop-issta" class="navigate"><span class="glyphicon glyphicon-home"></span> Series</a></li><li class="block divider"></li><li class="block"><span class="text-muted" style="margin-left: 2px;"><span class="glyphicon glyphicon-hand-right"></span> ISSTA/ECOOP 2024</span></li><li class="block"><a href="https://conf.researchr.org/home/ecoop-issta-2023" class="navigate">ECOOP and ISSTA 2023</a></li><li class="block"><a href="https://conf.researchr.org/home/ecoop-issta-2021" class="navigate">ECOOP and ISSTA 2021</a></li><li class="block"><a href="https://conf.researchr.org/home/ecoop-issta-2018" class="navigate">ECOOP and ISSTA 2018</a></li></ul></li></ul><div class="navbar-right"><ul class="block nav navbar-nav"><li class="block"><a href="https://conf.researchr.org/signin/issta-ecoop-2024/https%3A%5Es%5Esconf.researchr.org%5Eshome%5Esissta-ecoop-2024%5Escakc-2024" rel="nofollow" class="navigate">Sign in</a></li><li class="block"><a href="https://conf.researchr.org/signup/issta-ecoop-2024" class="navigate">Sign up</a></li></ul></div></div></div></div><div id="content" class="container"><div class="page-header"><span class="text-muted small"><span class="glyphicon glyphicon-home"></span> <a href="https://conf.researchr.org/home/issta-ecoop-2024" class="navigate">ISSTA/ECOOP 2024</a> (<a href="https://conf.researchr.org/series/ecoop-issta" class="navigate">series</a>) / </span><span class="text-muted small">CAKC 2024 (<a href="https://conf.researchr.org/series/cakc" class="navigate">series</a>) / </span><h1>Concurrent Algorithms in Kotlin Coroutines Tutorial<span class="pull-right small h1">CAKC 2024</span></h1></div><div class="row"><div class="col-sm-8"><ul id="tab" class="nav nav-pills"><li><a href="#About" data-toggle="tab">About</a></li><li><a href="#program" data-toggle="tab">Program</a></li></ul><script type="text/javascript">(function(){ var post_process_function = function(n){ var node=(n&&n.nodeType === 1)?n:document; autoTabFunction(node); }; var original_post_process_func = ajax_post_process; ajax_post_process = function(){ original_post_process_func.apply(this,arguments); post_process_function.apply(this,arguments); }; $(document).ready( post_process_function ); })(); </script><div class="tab-content"><div id="About" class="tab-pane "><p>Most mainstream programming languages now offer the async-await mechanism or coroutines abstraction for asynchronous programming. Kotlin stands out with coroutines that occupy a unique spot in the overall language design, using a single suspend modifier at the language level. Kotlin Coroutines are massively adopted by the Kotlin user base, being a recommended solution to concurrency in Android programming and offering concise syntax for reactive server-side applications.</p> <p>In this tutorial, we will delve deep into Kotlin Coroutines. Starting with a high-level discussion of what coroutines are and how they work in Kotlin, we continue with talks dedicated to particular parts that require non-trivial concurrent algorithms: coroutines scheduler, channels, and synchronization primitives. We have recently redesigned most of these parts; much of the work was published at PPoPP and PLDI conferences last year. Finally, we will discuss the Lincheck framework designed to test all these algorithms for correctness.</p> <p>During this tutorial, we would like to show the problems we have faced when improving Kotlin Coroutines, present all the work in one place, and gather people who develop concurrent algorithms and programming languages.</p> <h3>Talks</h3><table class="table table-condensed"><colgroup width="5"/><colgroup/><thead><tr><th><span class="glyphicon glyphicon-star"></span></th><th>Title</th></tr></thead><tr><td><span data-event-star="570a1183-d6ef-4c4b-82ac-4eaf18e53665" title="Add event to your program"><span class="text-disabled glyphicon glyphicon-star-empty"></span></span></td><td><a href="#" data-event-modal="570a1183-d6ef-4c4b-82ac-4eaf18e53665">Coroutines Scheduler</a><div class="prog-track">CAKC</div><div class="performers"><a href="https://conf.researchr.org/profile/issta-ecoop-2024/nikitakoval" class="navigate">Nikita Koval</a></div></td></tr><tr><td><span data-event-star="cbf88893-b781-4980-adab-dcc4104665eb" title="Add event to your program"><span class="text-disabled glyphicon glyphicon-star-empty"></span></span></td><td><a href="#" data-event-modal="cbf88893-b781-4980-adab-dcc4104665eb">CQS: A Formally-Verified Framework for Fair and Abortable Synchronization Primitives</a><div class="prog-track">CAKC</div><div class="performers"><a href="https://conf.researchr.org/profile/issta-ecoop-2024/nikitakoval" class="navigate">Nikita Koval</a></div><a href="https://dl.acm.org/doi/abs/10.1145/3591230" target="_blank" class="publication-link navigate"><span class="glyphicon glyphicon-link"></span> Link to publication</a></td></tr><tr><td><span data-event-star="ffcb5aff-a706-4fe0-b8ab-296fdcd5b7c0" title="Add event to your program"><span class="text-disabled glyphicon glyphicon-star-empty"></span></span></td><td><a href="#" data-event-modal="ffcb5aff-a706-4fe0-b8ab-296fdcd5b7c0">Fast and Scalable Communication Channels</a><div class="prog-track">CAKC</div><div class="performers"><a href="https://conf.researchr.org/profile/issta-ecoop-2024/nikitakoval" class="navigate">Nikita Koval</a></div><a href="https://dl.acm.org/doi/abs/10.1145/3572848.3577481" target="_blank" class="publication-link navigate"><span class="glyphicon glyphicon-link"></span> Link to publication</a></td></tr><tr><td><span data-event-star="8f1c79d6-047a-40d5-9a02-133be2e0ba79" title="Add event to your program"><span class="text-disabled glyphicon glyphicon-star-empty"></span></span></td><td><a href="#" data-event-modal="8f1c79d6-047a-40d5-9a02-133be2e0ba79">Lincheck: A Practical Framework for Testing Concurrent Data Structures on JVM</a><div class="prog-track">CAKC</div><div class="performers"><a href="https://conf.researchr.org/profile/issta-ecoop-2024/nikitakoval" class="navigate">Nikita Koval</a></div></td></tr></table></div><div id="program" class="tab-pane "><div class="faceted-filtering"><div class="row plenary-facets"><div class="col-sm-1"><strong>Plenary</strong></div><div class="col-sm-11"><div data-facet-type="plenary" class="facet-placeholder"></div></div></div><script type="text/javascript">(function(){ var post_process_function = function(n){ var node=(n&&n.nodeType === 1)?n:document; $(node).find('.modal').on('shown.bs.modal', function() {if(gtag) { gtag( 'event', 'Show Details in Modal' , {'event_category': 'Event Information', 'event_label': '' + $(this).find('.modal-title').text() + ''} ) } } ) }; var original_post_process_func = ajax_post_process; ajax_post_process = function(){ original_post_process_func.apply(this,arguments); post_process_function.apply(this,arguments); }; $(document).ready( post_process_function ); })(); </script><div tabindex="-1" id="hidden-modal" class="modal"><div class="modal-dialog "><div class="modal-content"></div></div></div><div id="program-settings-modal" class="webdsl-placeholder"><div id="userProgramSettings" class="modal fade"><div class="modal-dialog "><div class="modal-content"><div class="modal-header"><a data-dismiss="modal" class="close"><span class="glyphicon glyphicon-remove"></span></a><h3>Program Display Configuration</h3></div><div class="modal-body"><form name="form11390898770538530f0e2bbdb67872b491120c5c8a7" id="form11390898770538530f0e2bbdb67872b491120c5c8a7" action="https://conf.researchr.org/userProgramSettingsModalConferenceEdition" accept-charset="UTF-8" method="POST" role="form" class="form-horizontal"><input type="hidden" name="form11390898770538530f0e2bbdb67872b491120c5c8a7" value="1" /><input type="hidden" name="context" value="issta-ecoop-2024" /><div class="panel panel-default timezone-panel"><div class="panel-heading clearfix"><div class="panel-title">Time Zone</div></div><div class="panel-body"><span class="help-block">The program is currently displayed in <strong>(GMT+02:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna</strong>.</span><div class="row"><div class="col-sm-11 col-sm-offset-1"><label class="radio"><input type="radio" checked="checked" name="9659afaa126198132be460b106e35ccb" value="false" onchange="if( ($(this).val() == 'true' && this.checked) != $('#cec04de0447905c49fb377c6d9693505').is(':visible') ) { $('#cec04de0447905c49fb377c6d9693505').fadeToggle( 250 ); }"/><strong>Use conference time zone: (GMT+02:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna</strong></label><label class="radio"><input type="radio" name="9659afaa126198132be460b106e35ccb" value="true" onchange="if( ($(this).val() == 'true' && this.checked) != $('#cec04de0447905c49fb377c6d9693505').is(':visible') ) { $('#cec04de0447905c49fb377c6d9693505').fadeToggle( 250 ); }"/>Select other time zone</label><div id="cec04de0447905c49fb377c6d9693505" style=" display: none;"><select name="0e35d6393a8ba494aa0723dd51b6899c" class="select form-control"><option value="" selected="selected" data-utc-minute-offset="0"></option><option value="Etc/GMT+12" data-utc-minute-offset="-720">(GMT-12:00) AoE (Anywhere On Earth)</option><option value="Pacific/Midway" data-utc-minute-offset="-660">(GMT-11:00) Midway Island, Samoa</option><option value="America/Adak" data-utc-minute-offset="-600">(GMT-09:00) Hawaii-Aleutian</option><option value="Etc/GMT+10" data-utc-minute-offset="-600">(GMT-10:00) Hawaii</option><option value="Pacific/Marquesas" data-utc-minute-offset="-570">(GMT-09:30) Marquesas Islands</option><option value="Pacific/Gambier" data-utc-minute-offset="-540">(GMT-09:00) Gambier Islands</option><option value="America/Anchorage" data-utc-minute-offset="-540">(GMT-08:00) Alaska</option><option value="America/Ensenada" data-utc-minute-offset="-480">(GMT-07:00) Tijuana, Baja California</option><option value="Etc/GMT+8" data-utc-minute-offset="-480">(GMT-08:00) Pitcairn Islands</option><option value="America/Los_Angeles" data-utc-minute-offset="-480">(GMT-07:00) Pacific Time (US & Canada)</option><option value="America/Denver" data-utc-minute-offset="-420">(GMT-06:00) Mountain Time (US & Canada)</option><option value="America/Chihuahua" data-utc-minute-offset="-360">(GMT-06:00) Chihuahua, La Paz, Mazatlan</option><option value="America/Dawson_Creek" data-utc-minute-offset="-420">(GMT-07:00) Arizona</option><option value="America/Belize" data-utc-minute-offset="-360">(GMT-06:00) Saskatchewan, Central America</option><option value="America/Cancun" data-utc-minute-offset="-300">(GMT-05:00) Guadalajara, Mexico City, Monterrey</option><option value="Chile/EasterIsland" data-utc-minute-offset="-300">(GMT-05:00) Easter Island</option><option value="America/Chicago" data-utc-minute-offset="-360">(GMT-05:00) Central Time (US & Canada)</option><option value="America/New_York" data-utc-minute-offset="-300">(GMT-04:00) Eastern Time (US & Canada)</option><option value="America/Havana" data-utc-minute-offset="-300">(GMT-04:00) Cuba</option><option value="America/Bogota" data-utc-minute-offset="-300">(GMT-05:00) Bogota, Lima, Quito, Rio Branco</option><option value="America/Caracas" data-utc-minute-offset="-240">(GMT-04:00) Caracas</option><option value="America/Santiago" data-utc-minute-offset="-180">(GMT-03:00) Santiago</option><option value="America/La_Paz" data-utc-minute-offset="-240">(GMT-04:00) La Paz</option><option value="Atlantic/Stanley" data-utc-minute-offset="-180">(GMT-03:00) Faukland Islands</option><option value="America/Campo_Grande" data-utc-minute-offset="-240">(GMT-04:00) Manaus, Amazonas, Brazil</option><option value="America/Goose_Bay" data-utc-minute-offset="-240">(GMT-03:00) Atlantic Time (Goose Bay)</option><option value="America/Glace_Bay" data-utc-minute-offset="-240">(GMT-03:00) Atlantic Time (Canada)</option><option value="America/St_Johns" data-utc-minute-offset="-210">(GMT-02:30) Newfoundland</option><option value="America/Araguaina" data-utc-minute-offset="-180">(GMT-03:00) UTC-3</option><option value="America/Montevideo" data-utc-minute-offset="-180">(GMT-03:00) Montevideo</option><option value="America/Miquelon" data-utc-minute-offset="-180">(GMT-02:00) Miquelon, St. Pierre</option><option value="America/Godthab" data-utc-minute-offset="-180">(GMT-02:00) Greenland</option><option value="America/Argentina/Buenos_Aires" data-utc-minute-offset="-180">(GMT-03:00) Buenos Aires</option><option value="America/Sao_Paulo" data-utc-minute-offset="-180">(GMT-03:00) Brasilia, Distrito Federal, Brazil</option><option value="America/Noronha" data-utc-minute-offset="-120">(GMT-02:00) Mid-Atlantic</option><option value="Atlantic/Cape_Verde" data-utc-minute-offset="-60">(GMT-01:00) Cape Verde Is.</option><option value="Atlantic/Azores" data-utc-minute-offset="-60">(GMT) Azores</option><option value="Etc/UTC" data-utc-minute-offset="0">(UTC) Coordinated Universal Time</option><option value="Europe/Belfast" data-utc-minute-offset="0">(GMT+01:00) Belfast</option><option value="Europe/Dublin" data-utc-minute-offset="0">(GMT+01:00) Dublin</option><option value="Europe/Lisbon" data-utc-minute-offset="0">(GMT+01:00) Lisbon</option><option value="Europe/London" data-utc-minute-offset="0">(GMT+01:00) London</option><option value="Africa/Abidjan" data-utc-minute-offset="0">(GMT) Monrovia, Reykjavik</option><option value="Europe/Amsterdam" data-utc-minute-offset="60">(GMT+02:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna</option><option value="Europe/Belgrade" data-utc-minute-offset="60">(GMT+02:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague</option><option value="Europe/Brussels" data-utc-minute-offset="60">(GMT+02:00) Brussels, Copenhagen, Madrid, Paris</option><option value="Africa/Algiers" data-utc-minute-offset="60">(GMT+01:00) West Central Africa</option><option value="Africa/Windhoek" data-utc-minute-offset="120">(GMT+02:00) Windhoek</option><option value="Europe/Athens" data-utc-minute-offset="120">(GMT+03:00) Athens</option><option value="Asia/Beirut" data-utc-minute-offset="120">(GMT+03:00) Beirut</option><option value="Africa/Cairo" data-utc-minute-offset="120">(GMT+02:00) Cairo</option><option value="Asia/Gaza" data-utc-minute-offset="120">(GMT+03:00) Gaza</option><option value="Africa/Blantyre" data-utc-minute-offset="120">(GMT+02:00) Harare, Pretoria</option><option value="Asia/Jerusalem" data-utc-minute-offset="120">(GMT+03:00) Jerusalem</option><option value="Europe/Minsk" data-utc-minute-offset="180">(GMT+03:00) Minsk</option><option value="Asia/Damascus" data-utc-minute-offset="180">(GMT+03:00) Syria</option><option value="Europe/Moscow" data-utc-minute-offset="180">(GMT+03:00) Moscow, St. Petersburg, Volgograd</option><option value="Africa/Addis_Ababa" data-utc-minute-offset="180">(GMT+03:00) Nairobi</option><option value="Asia/Tehran" data-utc-minute-offset="210">(GMT+03:30) Tehran</option><option value="Asia/Dubai" data-utc-minute-offset="240">(GMT+04:00) Abu Dhabi, Muscat</option><option value="Asia/Yerevan" data-utc-minute-offset="240">(GMT+04:00) Yerevan</option><option value="Asia/Kabul" data-utc-minute-offset="270">(GMT+04:30) Kabul</option><option value="Asia/Yekaterinburg" data-utc-minute-offset="300">(GMT+05:00) Ekaterinburg</option><option value="Asia/Tashkent" data-utc-minute-offset="300">(GMT+05:00) Tashkent</option><option value="Asia/Kolkata" data-utc-minute-offset="330">(GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi</option><option value="Asia/Katmandu" data-utc-minute-offset="345">(GMT+05:45) Kathmandu</option><option value="Asia/Dhaka" data-utc-minute-offset="360">(GMT+06:00) Astana, Dhaka</option><option value="Asia/Novosibirsk" data-utc-minute-offset="420">(GMT+07:00) Novosibirsk</option><option value="Asia/Rangoon" data-utc-minute-offset="390">(GMT+06:30) Yangon (Rangoon)</option><option value="Asia/Bangkok" data-utc-minute-offset="420">(GMT+07:00) Bangkok, Hanoi, Jakarta</option><option value="Asia/Krasnoyarsk" data-utc-minute-offset="420">(GMT+07:00) Krasnoyarsk</option><option value="Asia/Hong_Kong" data-utc-minute-offset="480">(GMT+08:00) Beijing, Chongqing, Hong Kong, Urumqi</option><option value="Asia/Irkutsk" data-utc-minute-offset="480">(GMT+08:00) Irkutsk, Ulaan Bataar</option><option value="Australia/Perth" data-utc-minute-offset="480">(GMT+08:00) Perth</option><option value="Australia/Eucla" data-utc-minute-offset="525">(GMT+08:45) Eucla</option><option value="Asia/Tokyo" data-utc-minute-offset="540">(GMT+09:00) Osaka, Sapporo, Tokyo</option><option value="Asia/Seoul" data-utc-minute-offset="540">(GMT+09:00) Seoul</option><option value="Asia/Yakutsk" data-utc-minute-offset="540">(GMT+09:00) Yakutsk</option><option value="Australia/Adelaide" data-utc-minute-offset="630">(GMT+09:30) Adelaide</option><option value="Australia/Darwin" data-utc-minute-offset="570">(GMT+09:30) Darwin</option><option value="Australia/Brisbane" data-utc-minute-offset="600">(GMT+10:00) Brisbane</option><option value="Australia/Hobart" data-utc-minute-offset="660">(GMT+10:00) Hobart</option><option value="Asia/Vladivostok" data-utc-minute-offset="600">(GMT+10:00) Vladivostok</option><option value="Australia/Lord_Howe" data-utc-minute-offset="660">(GMT+10:30) Lord Howe Island</option><option value="Etc/GMT-11" data-utc-minute-offset="660">(GMT+11:00) Solomon Is., New Caledonia</option><option value="Asia/Magadan" data-utc-minute-offset="660">(GMT+11:00) Magadan</option><option value="Pacific/Norfolk" data-utc-minute-offset="720">(GMT+11:00) Norfolk Island</option><option value="Asia/Anadyr" data-utc-minute-offset="720">(GMT+12:00) Anadyr, Kamchatka</option><option value="Pacific/Auckland" data-utc-minute-offset="780">(GMT+12:00) Auckland, Wellington</option><option value="Etc/GMT-12" data-utc-minute-offset="720">(GMT+12:00) Fiji, Kamchatka, Marshall Is.</option><option value="Pacific/Chatham" data-utc-minute-offset="825">(GMT+12:45) Chatham Islands</option><option value="Pacific/Tongatapu" data-utc-minute-offset="780">(GMT+13:00) Nuku'alofa</option><option value="Pacific/Kiritimati" data-utc-minute-offset="840">(GMT+14:00) Kiritimati</option></select><script type="text/javascript">var tzOffsetMin = new Date().getTimezoneOffset()*-1; var sel = document.getElementsByName('0e35d6393a8ba494aa0723dd51b6899c')[0] var opts = sel.options; for (var opt, j = 0; opt = opts[j]; j++) { if (opt.getAttribute('data-utc-minute-offset') == tzOffsetMin) { sel.selectedIndex = j; break; } } </script></div></div></div><br><span class="help-block"><small><span class="glyphicon glyphicon-info-sign"></span> The GMT offsets shown reflect the offsets <strong>at the moment of the conference</strong>.</small></span></div></div><div class="panel panel-default timeband-panel"><div class="panel-heading clearfix"><div class="panel-title">Time Band</div></div><div class="panel-body"><span class="help-block">By setting a time band, the program will dim events that are outside this time window. This is useful for (virtual) conferences with a continuous program (with repeated sessions).<br>The time band will also limit the events that are included in the personal iCalendar subscription service.</span><div class="row"><div class="col-sm-11 col-sm-offset-1"><label class="radio"><input type="radio" checked="checked" name="f1869fcfb40f29e9c9c46042f4fbda2c" value="false" onchange="if( ($(this).val() == 'true' && this.checked) != $('#c2371058bcb9b31dd10e115e7f712708').is(':visible') ) { $('#c2371058bcb9b31dd10e115e7f712708').fadeToggle( 250 ); }"/><strong>Display full program</strong></label><label class="radio"><input type="radio" name="f1869fcfb40f29e9c9c46042f4fbda2c" value="true" onchange="if( ($(this).val() == 'true' && this.checked) != $('#c2371058bcb9b31dd10e115e7f712708').is(':visible') ) { $('#c2371058bcb9b31dd10e115e7f712708').fadeToggle( 250 ); }"/>Specify a time band</label><div id="c2371058bcb9b31dd10e115e7f712708" style=" display: none;"><span class="input-group"><input name="a4e58ac1cd9cfb26fb62ecc29e600148" type="text" value="07:00" class="flatpickr inputDate form-control"/><script type="text/javascript">$("input:not(.flatpickr-input)[name=a4e58ac1cd9cfb26fb62ecc29e600148]").flatpickr({onOpen: function(dateObj, dateStr, instance){ if(dateStr == ''){ instance.jumpToDate( new Date() ); } }, allowInput: true, dateformat: 'H:i', altFormat: 'H:i' , altInput: true, time_24hr: true, noCalendar: true, enableTime : true}); </script><span class="input-group-addon"> - </span><input name="01ff55ee23f3ce1eb7d922f922eb09b1" type="text" value="19:00" class="flatpickr inputDate form-control"/><script type="text/javascript">$("input:not(.flatpickr-input)[name=01ff55ee23f3ce1eb7d922f922eb09b1]").flatpickr({onOpen: function(dateObj, dateStr, instance){ if(dateStr == ''){ instance.jumpToDate( new Date() ); } }, allowInput: true, dateformat: 'H:i', altFormat: 'H:i' , altInput: true, time_24hr: true, noCalendar: true, enableTime : true}); </script></span></div></div></div></div></div><div class="row form-group"><div class="col-sm-offset-2 col-sm-10"><button style="position: absolute; left: -9999px; width: 1px; height: 1px;" onclick='javascript:serverInvoke("https://conf.researchr.org/userProgramSettingsModalConferenceEdition","userProgramSettingsModalConferenceEdition_apply18ec3dfeeecb5c44c1e40a40983898869", [{"name":"context", "value":"issta-ecoop-2024"},],"form11390898770538530f0e2bbdb67872b491120c5c8a7", this.nextSibling, true,"program-settings-modal"); return false;'></button><a submitid="userProgramSettingsModalConferenceEdition_apply18ec3dfeeecb5c44c1e40a40983898869" href="javascript:void(0)" onclick="javascript:loadImageElem=this;$(this.previousSibling).click()" class="btn btn-primary btn btn-default">Save</a></div></div></form></div><div class="modal-footer"><a href="#" data-dismiss="modal" class="btn btn-default"><span class="glyphicon glyphicon-remove"></span> Close</a></div></div></div></div></div><div class="program-container"><div class="time-zone-warning text-muted hide-in-print"><div class="alert alert-dismissible alert-info"><button type="button" data-dismiss="alert" aria-label="Close" class="close"><span aria-hidden="true">×</span></button><span class="glyphicon glyphicon-info-sign"></span> You're viewing the program in a time zone which is different from your device's time zone <small class="control-time-zone"><a data-toggle="modal" href="#userProgramSettings">change time zone</a></small></div></div><div class="tz-floating-link"><small class="control-time-zone"><a data-toggle="modal" href="#userProgramSettings" title="Change Program Display Configuration" class="btn btn-xs btn-info"><span class="glyphicon glyphicon-wrench"></span> <span class="glyphicon glyphicon-time"></span></a></small></div><script type="text/javascript">var tzOffsetMin = new Date().getTimezoneOffset()*-1; if(tzOffsetMin != 60){ $('.time-zone-warning').toggleClass('visible'); window.displayUserProgamSettingsOnce = true; } </script><div class="hidable day-wrapper"><h4 class="day-header sticky-top"><div><div>Wed 18 Sep</div><p></p><div class="time-zone-info"><small class="text-muted">Displayed time zone: <strong>Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna</strong> <small class="control-time-zone"><a data-toggle="modal" href="#userProgramSettings">change</a></small></small></div></div></h4><div class="hidable band hour-10"><table data-facet-date="Wed 18 Sep 2024" data-facet-date-order="240918" data-facet-track="ISSTA/ECOOP Social Events" data-facet-room="Aula" class="table table-condensed session-table"><colgroup width="10px"/><colgroup width="100px"/><colgroup width="10px"/><colgroup width="100%"/><tr class="session-details"><td class="track-color c23"></td><td><div class="slot-label">10:00 - 10:30</div></td><td colspan="2"><div class="session-info-in-table">Break<span class="pull-right"><a href="https://conf.researchr.org/track/issta-ecoop-2024/issta-ecoop-2024-catering" target="_blank" class="text-muted navigate">Social Events</a></span> at <a href="https://conf.researchr.org/room/issta-ecoop-2024/ecoop-issta-2024-venue-aula" target="_blank" class="room-link navigate">Aula</a> <a data-toggle="modal" href="#aci-0aa563c0-e17b-4342-8abc-b98d71292bb1"><span title="Information for Participants" class="label label-primary"><span class="glyphicon glyphicon-log-in"></span></span></a><br/></div></td></tr><tr class="firefox-fix"><td></td><td></td><td></td><td></td></tr></table></div><div class="hidable band hour-10"><table data-facet-date="Wed 18 Sep 2024" data-facet-date-order="240918" data-facet-room="EI 4 Reithoffer" data-facet-plenary="Hide plenary sessions" class="table table-condensed session-table"><colgroup width="10px"/><colgroup width="100px"/><colgroup width="10px"/><colgroup width="100%"/><tr class="session-details"><td class="track-color c21"></td><td><div class="slot-label">10:30 - 11:50</div></td><td colspan="2"><div class="session-info-in-table">Concurrent Algorithms in Kotlin Coroutines<span class="pull-right"><a href="https://conf.researchr.org/home/issta-ecoop-2024/cakc-2024" target="_blank" class="text-muted navigate">CAKC</a></span> at <a href="https://conf.researchr.org/room/issta-ecoop-2024/ecoop-issta-2024-venue-ei-4-reithoffer" target="_blank" class="room-link navigate">EI 4 Reithoffer</a> <a data-toggle="modal" href="#aci-ea22655c-72a3-48c4-8059-7a968d1e6fa7"><span title="Information for Participants" class="label label-primary"><span class="glyphicon glyphicon-log-in"></span></span></a><br/></div></td></tr><tr class="firefox-fix"><td></td><td></td><td></td><td></td></tr><tr data-slot-id="ba6f24c2-b4da-4e8d-a1f4-b8359a0c5e43" class="hidable"><td class="track-color c21"></td><td class=" text-right"><div class="text-muted"><div class="start-time">10:30</div><strong>15m</strong></div><div class="event-type">Talk</div><span data-facet-track="CAKC"></span></td><td><span data-event-star="570a1183-d6ef-4c4b-82ac-4eaf18e53665" title="Add event to your program"><span class="text-disabled glyphicon glyphicon-star-empty"></span></span></td><td><strong><a href="#" data-event-modal="570a1183-d6ef-4c4b-82ac-4eaf18e53665">Coroutines Scheduler</a></strong><div class="prog-track">CAKC</div><div class="performers"><a href="https://conf.researchr.org/profile/issta-ecoop-2024/nikitakoval" class="navigate">Nikita Koval</a><span class="prog-aff"> JetBrains</span></div></td></tr><tr data-slot-id="6d15f91d-8de8-4e05-b4aa-860f7fd70f47" class="hidable"><td class="track-color c21"></td><td class=" text-right"><div class="text-muted"><div class="start-time">10:45</div><strong>40m</strong></div><div class="event-type">Talk</div><span data-facet-track="CAKC"></span></td><td><span data-event-star="ffcb5aff-a706-4fe0-b8ab-296fdcd5b7c0" title="Add event to your program"><span class="text-disabled glyphicon glyphicon-star-empty"></span></span></td><td><strong><a href="#" data-event-modal="ffcb5aff-a706-4fe0-b8ab-296fdcd5b7c0">Fast and Scalable Communication Channels</a></strong><div class="prog-track">CAKC</div><div class="performers"><a href="https://conf.researchr.org/profile/issta-ecoop-2024/nikitakoval" class="navigate">Nikita Koval</a><span class="prog-aff"> JetBrains</span></div><a href="https://dl.acm.org/doi/abs/10.1145/3572848.3577481" target="_blank" class="publication-link navigate"><span class="glyphicon glyphicon-link"></span> Link to publication</a></td></tr><tr data-slot-id="a9f2db88-51df-4872-b048-685da8ad5f04" class="hidable"><td class="track-color c21"></td><td class=" text-right"><div class="text-muted"><div class="start-time">11:25</div><strong>25m</strong></div><div class="event-type">Talk</div><span data-facet-track="CAKC"></span></td><td><span data-event-star="cbf88893-b781-4980-adab-dcc4104665eb" title="Add event to your program"><span class="text-disabled glyphicon glyphicon-star-empty"></span></span></td><td><strong><a href="#" data-event-modal="cbf88893-b781-4980-adab-dcc4104665eb">CQS: A Formally-Verified Framework for Fair and Abortable Synchronization Primitives</a></strong><div class="prog-track">CAKC</div><div class="performers"><a href="https://conf.researchr.org/profile/issta-ecoop-2024/nikitakoval" class="navigate">Nikita Koval</a><span class="prog-aff"> JetBrains</span></div><a href="https://dl.acm.org/doi/abs/10.1145/3591230" target="_blank" class="publication-link navigate"><span class="glyphicon glyphicon-link"></span> Link to publication</a></td></tr></table></div><div class="hidable band hour-12"><table data-facet-date="Wed 18 Sep 2024" data-facet-date-order="240918" data-facet-track="ISSTA/ECOOP Social Events" data-facet-room="Aula" class="table table-condensed session-table"><colgroup width="10px"/><colgroup width="100px"/><colgroup width="10px"/><colgroup width="100%"/><tr class="session-details"><td class="track-color c23"></td><td><div class="slot-label">12:00 - 13:30</div></td><td colspan="2"><div class="session-info-in-table">Lunch<span class="pull-right"><a href="https://conf.researchr.org/track/issta-ecoop-2024/issta-ecoop-2024-catering" target="_blank" class="text-muted navigate">Social Events</a></span> at <a href="https://conf.researchr.org/room/issta-ecoop-2024/ecoop-issta-2024-venue-aula" target="_blank" class="room-link navigate">Aula</a> <a data-toggle="modal" href="#aci-b9f80177-c2dc-486d-83f2-e75981bfd8bf"><span title="Information for Participants" class="label label-primary"><span class="glyphicon glyphicon-log-in"></span></span></a><br/></div></td></tr><tr class="firefox-fix"><td></td><td></td><td></td><td></td></tr></table></div><div class="hidable band hour-12"><table data-facet-date="Wed 18 Sep 2024" data-facet-date-order="240918" data-facet-track="ISSTA/ECOOP Social Events" data-facet-room="EI 1 Petritsch" class="table table-condensed session-table"><colgroup width="10px"/><colgroup width="100px"/><colgroup width="10px"/><colgroup width="100%"/><tr class="session-details"><td class="track-color c23"></td><td><div class="slot-label">12:00 - 13:30</div></td><td colspan="2"><div class="session-info-in-table">Diversity and Inclusion Lunch<span class="pull-right"><a href="https://conf.researchr.org/track/issta-ecoop-2024/issta-ecoop-2024-catering" target="_blank" class="text-muted navigate">Social Events</a></span> at <a href="https://conf.researchr.org/room/issta-ecoop-2024/ecoop-issta-2024-venue-ei-1-petritsch" target="_blank" class="room-link navigate">EI 1 Petritsch</a> <a data-toggle="modal" href="#aci-103b96e6-b3ca-4492-a8f6-e301a8aacacd"><span title="Information for Participants" class="label label-primary"><span class="glyphicon glyphicon-log-in"></span></span></a><br/><p><a href="https://conf.researchr.org/track/issta-ecoop-2024/issta-ecoop-2024-diversity">https://conf.researchr.org/track/issta-ecoop-2024/issta-ecoop-2024-diversity</a></p> </div></td></tr><tr class="firefox-fix"><td></td><td></td><td></td><td></td></tr></table></div><div class="hidable band hour-15"><table data-facet-date="Wed 18 Sep 2024" data-facet-date-order="240918" data-facet-track="ISSTA/ECOOP Social Events" data-facet-room="Aula" class="table table-condensed session-table"><colgroup width="10px"/><colgroup width="100px"/><colgroup width="10px"/><colgroup width="100%"/><tr class="session-details"><td class="track-color c23"></td><td><div class="slot-label">15:00 - 15:30</div></td><td colspan="2"><div class="session-info-in-table">Break<span class="pull-right"><a href="https://conf.researchr.org/track/issta-ecoop-2024/issta-ecoop-2024-catering" target="_blank" class="text-muted navigate">Social Events</a></span> at <a href="https://conf.researchr.org/room/issta-ecoop-2024/ecoop-issta-2024-venue-aula" target="_blank" class="room-link navigate">Aula</a> <a data-toggle="modal" href="#aci-14d85745-198d-4d70-91d6-e3a94c0a4346"><span title="Information for Participants" class="label label-primary"><span class="glyphicon glyphicon-log-in"></span></span></a><br/></div></td></tr><tr class="firefox-fix"><td></td><td></td><td></td><td></td></tr></table></div><div class="hidable band hour-15"><table data-facet-date="Wed 18 Sep 2024" data-facet-date-order="240918" data-facet-room="EI 4 Reithoffer" data-facet-plenary="Hide plenary sessions" class="table table-condensed session-table"><colgroup width="10px"/><colgroup width="100px"/><colgroup width="10px"/><colgroup width="100%"/><tr class="session-details"><td class="track-color c21"></td><td><div class="slot-label">15:30 - 16:50</div></td><td colspan="2"><div class="session-info-in-table">Concurrent Algorithms in Kotlin Coroutines<span class="pull-right"><a href="https://conf.researchr.org/home/issta-ecoop-2024/cakc-2024" target="_blank" class="text-muted navigate">CAKC</a></span> at <a href="https://conf.researchr.org/room/issta-ecoop-2024/ecoop-issta-2024-venue-ei-4-reithoffer" target="_blank" class="room-link navigate">EI 4 Reithoffer</a> <a data-toggle="modal" href="#aci-6a6c4f8c-1987-43d7-abba-ece30c20ca20"><span title="Information for Participants" class="label label-primary"><span class="glyphicon glyphicon-log-in"></span></span></a><br/></div></td></tr><tr class="firefox-fix"><td></td><td></td><td></td><td></td></tr><tr data-slot-id="8d353c3b-75e8-46fb-b584-2c67d68f1864" class="hidable"><td class="track-color c21"></td><td class=" text-right"><div class="text-muted"><div class="start-time">15:30</div><strong>80m</strong></div><div class="event-type">Talk</div><span data-facet-track="CAKC"></span></td><td><span data-event-star="8f1c79d6-047a-40d5-9a02-133be2e0ba79" title="Add event to your program"><span class="text-disabled glyphicon glyphicon-star-empty"></span></span></td><td><strong><a href="#" data-event-modal="8f1c79d6-047a-40d5-9a02-133be2e0ba79">Lincheck: A Practical Framework for Testing Concurrent Data Structures on JVM</a></strong><div class="prog-track">CAKC</div><div class="performers"><a href="https://conf.researchr.org/profile/issta-ecoop-2024/nikitakoval" class="navigate">Nikita Koval</a><span class="prog-aff"> JetBrains</span></div></td></tr></table></div><div class="hidable band hour-17"><table data-facet-date="Wed 18 Sep 2024" data-facet-date-order="240918" data-facet-track="ISSTA/ECOOP Social Events" data-facet-room="Fuhrgassl-Huber" class="table table-condensed session-table"><colgroup width="10px"/><colgroup width="100px"/><colgroup width="10px"/><colgroup width="100%"/><tr class="session-details"><td class="track-color c23"></td><td><div class="slot-label">17:45 - 23:00</div></td><td colspan="2"><div class="session-info-in-table">Banquet<span class="pull-right"><a href="https://conf.researchr.org/track/issta-ecoop-2024/issta-ecoop-2024-catering" target="_blank" class="text-muted navigate">Social Events</a></span> at <a href="https://conf.researchr.org/room/issta-ecoop-2024/issta-ecoop-2024-venue2-fuhrgassl-huber" target="_blank" class="room-link navigate">Fuhrgassl-Huber</a><br/><p>We will take buses from the conference venue to go to the banquet.</p> </div></td></tr><tr class="firefox-fix"><td></td><td></td><td></td><td></td></tr></table></div></div></div><div tabindex="-1" id="aci-0aa563c0-e17b-4342-8abc-b98d71292bb1" class="modal"><div class="modal-dialog "><div class="modal-content"><div class="modal-header"><a data-dismiss="modal" class="close"><span class="glyphicon glyphicon-remove"></span></a><h3>Information for Participants</h3></div><div class="modal-body"><div class="well well-sm"><strong>Wed 18 Sep 2024 10:00 - 10:30 at <a href="https://conf.researchr.org/room/issta-ecoop-2024/ecoop-issta-2024-venue-aula" class="room-link navigate">Aula</a></strong> - <a href="https://conf.researchr.org/track/issta-ecoop-2024/issta-ecoop-2024-catering#program" class="navigate">Break</a><div class="text-muted">Info for room <strong>Aula</strong>: </div><blockquote class="info-participants"><p><a href="https://tuw-maps.tuwien.ac.at/?q=CDEG09">https://tuw-maps.tuwien.ac.at/?q=CDEG09</a></p> </blockquote></div></div><div class="modal-footer"><a href="#" data-dismiss="modal" class="btn btn-default"><span class="glyphicon glyphicon-remove"></span> Close</a></div></div></div></div><div tabindex="-1" id="aci-ea22655c-72a3-48c4-8059-7a968d1e6fa7" class="modal"><div class="modal-dialog "><div class="modal-content"><div class="modal-header"><a data-dismiss="modal" class="close"><span class="glyphicon glyphicon-remove"></span></a><h3>Information for Participants</h3></div><div class="modal-body"><div class="well well-sm"><strong>Wed 18 Sep 2024 10:30 - 11:50 at <a href="https://conf.researchr.org/room/issta-ecoop-2024/ecoop-issta-2024-venue-ei-4-reithoffer" class="room-link navigate">EI 4 Reithoffer</a></strong> - <a href="https://conf.researchr.org/home/issta-ecoop-2024/cakc-2024#program" class="navigate">Concurrent Algorithms in Kotlin Coroutines</a><div class="text-muted">Info for room <strong>EI 4 Reithoffer</strong>: </div><blockquote class="info-participants"><p>Map: <a href="https://tuw-maps.tuwien.ac.at/?q=CF0245">https://tuw-maps.tuwien.ac.at/?q=CF0245</a></p> <p>Room tech: <a href="https://raumkatalog.tiss.tuwien.ac.at/room/15735">https://raumkatalog.tiss.tuwien.ac.at/room/15735</a></p> </blockquote></div></div><div class="modal-footer"><a href="#" data-dismiss="modal" class="btn btn-default"><span class="glyphicon glyphicon-remove"></span> Close</a></div></div></div></div><div tabindex="-1" id="aci-b9f80177-c2dc-486d-83f2-e75981bfd8bf" class="modal"><div class="modal-dialog "><div class="modal-content"><div class="modal-header"><a data-dismiss="modal" class="close"><span class="glyphicon glyphicon-remove"></span></a><h3>Information for Participants</h3></div><div class="modal-body"><div class="well well-sm"><strong>Wed 18 Sep 2024 12:00 - 13:30 at <a href="https://conf.researchr.org/room/issta-ecoop-2024/ecoop-issta-2024-venue-aula" class="room-link navigate">Aula</a></strong> - <a href="https://conf.researchr.org/track/issta-ecoop-2024/issta-ecoop-2024-catering#program" class="navigate">Lunch</a><div class="text-muted">Info for room <strong>Aula</strong>: </div><blockquote class="info-participants"><p><a href="https://tuw-maps.tuwien.ac.at/?q=CDEG09">https://tuw-maps.tuwien.ac.at/?q=CDEG09</a></p> </blockquote></div></div><div class="modal-footer"><a href="#" data-dismiss="modal" class="btn btn-default"><span class="glyphicon glyphicon-remove"></span> Close</a></div></div></div></div><div tabindex="-1" id="aci-103b96e6-b3ca-4492-a8f6-e301a8aacacd" class="modal"><div class="modal-dialog "><div class="modal-content"><div class="modal-header"><a data-dismiss="modal" class="close"><span class="glyphicon glyphicon-remove"></span></a><h3>Information for Participants</h3></div><div class="modal-body"><div class="well well-sm"><strong>Wed 18 Sep 2024 12:00 - 13:30 at <a href="https://conf.researchr.org/room/issta-ecoop-2024/ecoop-issta-2024-venue-ei-1-petritsch" class="room-link navigate">EI 1 Petritsch</a></strong> - <a href="https://conf.researchr.org/track/issta-ecoop-2024/issta-ecoop-2024-catering#program" class="navigate">Diversity and Inclusion Lunch</a><div class="text-muted">Info for room <strong>EI 1 Petritsch</strong>: </div><blockquote class="info-participants"><p>Map: <a href="https://tuw-maps.tuwien.ac.at/?q=CF0242">https://tuw-maps.tuwien.ac.at/?q=CF0242</a></p> <p>Room tech: <a href="https://raumkatalog.tiss.tuwien.ac.at/room/15726">https://raumkatalog.tiss.tuwien.ac.at/room/15726</a></p> </blockquote></div></div><div class="modal-footer"><a href="#" data-dismiss="modal" class="btn btn-default"><span class="glyphicon glyphicon-remove"></span> Close</a></div></div></div></div><div tabindex="-1" id="aci-14d85745-198d-4d70-91d6-e3a94c0a4346" class="modal"><div class="modal-dialog "><div class="modal-content"><div class="modal-header"><a data-dismiss="modal" class="close"><span class="glyphicon glyphicon-remove"></span></a><h3>Information for Participants</h3></div><div class="modal-body"><div class="well well-sm"><strong>Wed 18 Sep 2024 15:00 - 15:30 at <a href="https://conf.researchr.org/room/issta-ecoop-2024/ecoop-issta-2024-venue-aula" class="room-link navigate">Aula</a></strong> - <a href="https://conf.researchr.org/track/issta-ecoop-2024/issta-ecoop-2024-catering#program" class="navigate">Break</a><div class="text-muted">Info for room <strong>Aula</strong>: </div><blockquote class="info-participants"><p><a href="https://tuw-maps.tuwien.ac.at/?q=CDEG09">https://tuw-maps.tuwien.ac.at/?q=CDEG09</a></p> </blockquote></div></div><div class="modal-footer"><a href="#" data-dismiss="modal" class="btn btn-default"><span class="glyphicon glyphicon-remove"></span> Close</a></div></div></div></div><div tabindex="-1" id="aci-6a6c4f8c-1987-43d7-abba-ece30c20ca20" class="modal"><div class="modal-dialog "><div class="modal-content"><div class="modal-header"><a data-dismiss="modal" class="close"><span class="glyphicon glyphicon-remove"></span></a><h3>Information for Participants</h3></div><div class="modal-body"><div class="well well-sm"><strong>Wed 18 Sep 2024 15:30 - 16:50 at <a href="https://conf.researchr.org/room/issta-ecoop-2024/ecoop-issta-2024-venue-ei-4-reithoffer" class="room-link navigate">EI 4 Reithoffer</a></strong> - <a href="https://conf.researchr.org/home/issta-ecoop-2024/cakc-2024#program" class="navigate">Concurrent Algorithms in Kotlin Coroutines</a><div class="text-muted">Info for room <strong>EI 4 Reithoffer</strong>: </div><blockquote class="info-participants"><p>Map: <a href="https://tuw-maps.tuwien.ac.at/?q=CF0245">https://tuw-maps.tuwien.ac.at/?q=CF0245</a></p> <p>Room tech: <a href="https://raumkatalog.tiss.tuwien.ac.at/room/15735">https://raumkatalog.tiss.tuwien.ac.at/room/15735</a></p> </blockquote></div></div><div class="modal-footer"><a href="#" data-dismiss="modal" class="btn btn-default"><span class="glyphicon glyphicon-remove"></span> Close</a></div></div></div></div></div></div></div><span class="pull-right"><small>Questions? Use the <a href="https://conf.researchr.org/contact2/issta-ecoop-2024/cakc-2024-papers" class="navigate">CAKC contact form</a>.</small></span><br></div><div class="col-sm-4 sidebar"><div class="panel panel-primary"><div class="panel-heading clearfix"><div class="panel-title"><a href="https://conf.researchr.org/committee/issta-ecoop-2024/cakc-2024-papers-organizing-committee" class="navigate">Organizing Committee</a></div></div><ul class="list-group"><li class="list-group-item"><a href="https://conf.researchr.org/profile/issta-ecoop-2024/nikitakoval" class="navigate"><div class="media"><span class="pull-left"><img alt="Nikita Koval" src="https://conf.researchr.org/getProfileImage/nikitakoval/fde7804f-2a19-47d8-80c9-bdac99b2464e/micro-avatar.jpg?1728220341000" class="outputimage media-object thumbnail no-bottom-margin"/></span><div class="media-body"><h5 class="media-heading">Nikita Koval<span class="pull-right"><small></small></span></h5><h5 class="media-heading"><span class="text-black">JetBrains</span></h5><h5 class="media-heading"><small>Netherlands</small></h5></div></div></a></li></ul></div></div></div><div id="messages-placeholder" class="alert alert-warning" style="display:none;"><a data-dismiss="alert" class="close">x</a><em>Mon 17 Feb 20:24</em></div></div><div id="notifications-ph" class="webdsl-placeholder"></div><div id="event-modal-loader" class="webdsl-placeholder"><form name="form_131600131703c411e65b13378d08eb1f6672b5a0259" id="form_131600131703c411e65b13378d08eb1f6672b5a0259" action="https://conf.researchr.org/eventDetailsModalByAjaxConferenceEdition" accept-charset="UTF-8" method="POST" class="hidden"><input type="hidden" name="form_131600131703c411e65b13378d08eb1f6672b5a0259" value="1" /><input type="hidden" name="context" value="issta-ecoop-2024" /><input name="ae03f7f6f951d515a297b161e922205d" type="text" value="" class="inputString form-control event-id-input"/><button style="position: absolute; left: -9999px; width: 1px; height: 1px;" onclick='javascript:serverInvoke("https://conf.researchr.org/eventDetailsModalByAjaxConferenceEdition","eventDetailsModalByAjaxConferenceEdition_ia0_3c411e65b13378d08eb1f6672b5a0259", [{"name":"context", "value":"issta-ecoop-2024"},],"form_131600131703c411e65b13378d08eb1f6672b5a0259", this.nextSibling, false,"event-modal-loader"); return false;'></button><a submitid="eventDetailsModalByAjaxConferenceEdition_ia0_3c411e65b13378d08eb1f6672b5a0259" href="javascript:void(0)" onclick="javascript:loadImageElem=this;$(this.previousSibling).click()" id="load-modal-action"></a></form></div><div id="event-star-form" class="webdsl-placeholder"><form name="form_509860938088b48fd14544d4239b498a2cf339e02b" id="form_509860938088b48fd14544d4239b498a2cf339e02b" action="https://conf.researchr.org/eventStarByAjaxConferenceEdition" accept-charset="UTF-8" method="POST" class="hidden"><input type="hidden" name="form_509860938088b48fd14544d4239b498a2cf339e02b" value="1" /><input type="hidden" name="context" value="issta-ecoop-2024" /><input name="a0b55aa29cf9431a9461b359872014e3" type="text" value="" class="inputString form-control event-id-input"/><button style="position: absolute; left: -9999px; width: 1px; height: 1px;" onclick='javascript:serverInvoke("https://conf.researchr.org/eventStarByAjaxConferenceEdition","eventStarByAjaxConferenceEdition_ia0_88b48fd14544d4239b498a2cf339e02b", [{"name":"context", "value":"issta-ecoop-2024"},],"form_509860938088b48fd14544d4239b498a2cf339e02b", this.nextSibling, false,"event-star-form"); return false;'></button><a submitid="eventStarByAjaxConferenceEdition_ia0_88b48fd14544d4239b498a2cf339e02b" href="javascript:void(0)" onclick="javascript:loadImageElem=this;$(this.previousSibling).click()" id="star-event-action"></a></form></div><div id="event-modals" class="webdsl-placeholder"></div><script type="text/javascript">(function(){ var post_process_function = function(n){ var node=(n&&n.nodeType === 1)?n:document; addEventModalLoadOnClick(node); addStarredEventOnClick(node); }; var original_post_process_func = ajax_post_process; ajax_post_process = function(){ original_post_process_func.apply(this,arguments); post_process_function.apply(this,arguments); }; $(document).ready( post_process_function ); })(); </script><footer class="footer"><div class="container"><div class="footer-box"><div class="row"><div class="col-sm-3"><h3><a href="https://conf.researchr.org/home/issta-ecoop-2024" class="navigate"><span class="glyphicon glyphicon-home"></span> ISSTA/ECOOP 2024</a></h3><div><a href="https://conf.researchr.org/contact/issta-ecoop-2024" class="navigate"><span class="glyphicon glyphicon-envelope"></span> contact form</a></div><hr/>using <a href="https://conf.researchr.org" class="navigate">conf.researchr.org</a> (<a href="http://yellowgrass.org/roadmap/conf.researchr.org" class="navigate">v1.69.0</a>)<br/><small><a href="https://conf.researchr.org/support/issta-ecoop-2024" target="_blank" class="navigate"><span class="glyphicon glyphicon-question-sign"></span> Support page</a></small><br/><small></small></div><div class="col-sm-5"><div class="row"><div class="col-sm-6"><h4>Tracks</h4><a href="https://conf.researchr.org/track/issta-ecoop-2024/issta-ecoop-2024-diversity" class="navigate">Diversity</a><br/><a href="https://conf.researchr.org/track/issta-ecoop-2024/issta-ecoop-2024-doctoral-symposium" class="navigate">Doctoral Symposium</a><br/><a href="https://conf.researchr.org/track/issta-ecoop-2024/issta-ecoop-2024-sponsorship" class="navigate">Sponsorship</a><br/><a href="https://conf.researchr.org/track/issta-ecoop-2024/issta-ecoop-2024-student-volunteers" class="navigate">Student Volunteers</a><br/><a href="https://conf.researchr.org/track/issta-ecoop-2024/issta-ecoop-2024-tool-demonstrations" class="navigate">Tool Demonstrations</a><br/><a href="https://conf.researchr.org/track/issta-ecoop-2024/issta-ecoop-2024-workshops" class="navigate">Workshops</a></div><div class="col-sm-6"><h4>Co-hosted Conferences</h4><a href="https://2024.ecoop.org" class="navigate">ECOOP 2024</a><br/><a href="https://2024.issta.org" class="navigate">ISSTA 2024</a><br/><a href="https://conf.researchr.org/home/issta-ecoop-2024/mplr-2024" class="navigate">MPLR 2024</a><br/><h4>Workshops</h4><a href="https://conf.researchr.org/home/issta-ecoop-2024/a-test-2024" class="navigate">A-TEST 2024</a><br/><a href="https://conf.researchr.org/home/issta-ecoop-2024/debt-2024" class="navigate">DEBT 2024</a><br/><a href="https://conf.researchr.org/home/issta-ecoop-2024/FTfJP-2024" class="navigate">FTfJP 2024</a><br/><a href="https://conf.researchr.org/home/issta-ecoop-2024/fuzzing-2024" class="navigate">FUZZING 2024</a><br/><a href="https://conf.researchr.org/home/issta-ecoop-2024/gamify-2024" class="navigate">Gamify 2024</a><br/><a href="https://conf.researchr.org/home/issta-ecoop-2024/ICOOOLPS-2024" class="navigate">ICOOOLPS 2024</a><br/><a href="https://conf.researchr.org/home/issta-ecoop-2024/met-2024" class="navigate">MET 2024</a><br/><a href="https://conf.researchr.org/home/issta-ecoop-2024/plaid-2024" class="navigate">PLAID 2024</a><br/><a href="https://conf.researchr.org/home/issta-ecoop-2024/plf-2024" class="navigate">PLF 2024</a><br/><a href="https://conf.researchr.org/home/issta-ecoop-2024/vortex-2024" class="navigate">VORTEX 2024</a><br/><h4>Tutorials</h4><a href="https://conf.researchr.org/home/issta-ecoop-2024/cakc-2024" class="navigate">CAKC 2024</a></div></div></div><div class="col-sm-2"><h4>Attending</h4><a href="https://conf.researchr.org/venue/issta-ecoop-2024/ecoop-issta-2024-venue" class="navigate">Venue: Vienna University of Technology (TU Wien) - Campus Gusshaus</a><br><a href="https://conf.researchr.org/venue/issta-ecoop-2024/issta-ecoop-2024-venue" class="navigate">Reception: Vienna University of Technology (TU Wien) - Campus Karlsplatz</a><br><a href="https://conf.researchr.org/venue/issta-ecoop-2024/issta-ecoop-2024-venue2" class="navigate">Banquet: Fuhrgassl-Huber</a><br><a href="https://conf.researchr.org/attending/issta-ecoop-2024/diversity-and-inclusion" class="navigate">Equity, Diversity and Inclusion</a><br><a href="https://conf.researchr.org/attending/issta-ecoop-2024/conduct" class="navigate">Code of Conduct</a><br><a href="https://conf.researchr.org/attending/issta-ecoop-2024/visa-support-letters" class="navigate">Visa Support Letters</a><br><a href="https://conf.researchr.org/attending/issta-ecoop-2024/accomodation" class="navigate">Accomodation</a><br><a href="https://conf.researchr.org/attending/issta-ecoop-2024/registration" class="navigate">Registration</a></div><div class="col-sm-2"><a href="https://conf.researchr.org/signup/issta-ecoop-2024" class="navigate">Sign Up</a></div></div></div></div></footer></div><script type="text/javascript">(function(){ var post_process_function = function(n){ var node=(n&&n.nodeType === 1)?n:document; let defaultplacement = $(document).scrollLeft() > 100 ? 'auto left' : 'auto top'; $(node).find('[title]').each( function(i,el){ var $e=$(el);$e.tooltip({placement: function(tt, elem){ var attval = elem.getAttribute('data-placement'); return attval ? attval : defaultplacement; }, sanitize: false, container: 'body' }) } ).on('show.bs.tooltip', function () { let el = this; while (el && window.getComputedStyle(el).position !== 'fixed') { el = el.parentElement; } if(el) $(this).data('bs.tooltip').options.container = el;});$('.tooltip.fade.in, .ui-tooltip-content').remove(); }; var original_post_process_func = ajax_post_process; ajax_post_process = function(){ original_post_process_func.apply(this,arguments); post_process_function.apply(this,arguments); }; $(document).ready( post_process_function ); })(); </script><script type="text/javascript">jQuery(document).ready(function($) { $(".clickable-row").click(function() { var href = $(this).attr("href"); if( window.location.href.indexOf( href ) < 0 ){ if ($(this).hasClass('new-window') ){ window.open( href ); } else { window.document.location = href; } } }); }); </script></body></html>