Asynchronous Interactions and Managing Modeless UI with Autodesk Revit API
|
|
- Anabel Griffith
- 5 years ago
- Views:
Transcription
1 Asynchronous Interactions and Managing Modeless UI with Autodesk Revit API Arnošt Löbel Sr. Principal Software Engineer, Autodesk, Inc.
2 Class Summary In this class we will explore the realms of challenging workflows with the Revit API. You will learn common safe practices and you will understand the ways of the API. Together we will dive into the territory of asynchronous interactions with Revit and you will learn how to make such interactions efficient and safe.
3 Learning Objectives By the end of this class, you will: Understand the rules of safe interactions with the Revit API Learn the concept of controlling Revit asynchronously and the common pitfalls of such tasks Know how to use the Idling event to deliver results from an outside thread back to Revit Be able to streamline communications between an external modeless dialog and Revit Become familiar with using dynamic events to react to model changes
4 Knowledge is freedom The Revit API team wants to give API clients as much freedom as possible, but there are certain rules everyone should follow (and understand): 1. Thy shall not call the API unless invoked by it! 2. Thy shall not call the API from a different thread! 3. Thy shall call the API only, not the UI!
5 There s a jungle out there! (Randy Newman)
6 Things can go awry in asynchronous workflows Where s the danger? Why aren t we more protected? Secured gateways What could possibly happen? Scary stories to learn from The just reading case The case of crashed Revit The Russian Roulette case
7 Where is the danger? API clients make asynchronous calls mostly for good reasons, particularly to speed up Revit, but the outcome of unexpected invocations is often severe Documents will not be protected properly (no firewall!) Transaction and Regeneration mode not set Revit will not know the running application's ID The API scope is out of sync therefore events and updaters may behave unexpectedly
8 Why aren t we more protected? Most of unexpected calls either cause exceptions that would not happen otherwise, or miss on exceptions that should happen. Both cases could be equally dangerous. Revit cannot handle it because: Revit does not have a multi-thread-ready API Revit uses multi-threading internally only Revit uses a different thread context in the API API Firewall is not set around each every API call Revit doesn t expect API calls from other than the main Revit thread!
9 Secured gateways Execution tasks during which Revit expects API calls: A. The OnStartup and OnShutdown methods B. The Execute method of an external command C. Execution of a VSTA macro D. Handling an API event E. Invoking methods of a callback interface Outside of these tasks Revit does not know your application!
10 What could possibly happen? A. Nothing bad at all happens The call succeeds and all is fine (but would you bet on it?) B. Calls appear all right and returning successfully Though the gathered data are out of date or out of sync C. Calls fail, exceptions are thrown And this is actually a good scenario! D. Revit crashes, document(s) must be closed Frustration. Hard to determine whom to blame E. Revit model is corrupted by two independent processes In the worst case, the corrupted document is saved!
11 The just-reading case Consider for a moment one of the less severe scenarios when the asynchronous call (AC for short) just reads data from the model: 1. AC calls to get one parameter of a wall 2. Another application changes the wall on Idling 3. AC calls to get another parameter of the wall 4. An updater reacts to the change by another change 5. AC calls to get another parameter of the wall Though the calls were next to each other in the client s code, they were technically executed at different times and the data acquired by each of the methods reflects the state of the model at those different times.
12 The case of crashed Revit 1. User invokes an external command 2. Command splits a worker thread and waits for it to finish 3. The thread attempts to start a transaction 4. Revit throws an unhandled exception, possibly crashes How come this is an unsafe workflow? Because Revit API was called from another thread! What was the reason for the crash? Revit allocated memory in a wrong thread s context!
13 The Russian Roulette case Calling Revit API directly from a modeless dialog is not unlike betting in Las Vegas. One can gain something sometimes, but they will get you eventually. Applying it to our case something s going to crash. 1. Revit calls an external command 2. Command launches a modeless dialog and returns 3. The dialog awaits the user s requests 4. On a request, the dialog uses the API to modify the model The outcome of such calls is virtually unpredictable.
14 Happy Together (asynchronously)
15 Asynchronous workflows by the book Idling to the rescue The basic pattern A workflow with a twist Idling event s details Document-Changed event Code samples Modeless dialog Worker thread
16 Idling to the rescue 1. Use Idling to make API calls at unspecified times 2. Idling means Revit API is ready 3. DocumentChanged means Revit s done something 4. Those events are powerful when used together 5. Call to the API must be on the event s thread
17 The standard modeless pattern 1. An application registers itself and its commands 2. A command kicks off a modeless dialog and leaves it 3. The command registers for the Idling event 4. Command returns, Revit continues running 5. At times, Revit raises the Idling event 6. The event s handler checks if the dialog requested anything 7. If so, the handler takes the request and use the API 8. When the dialog is closed, it sets a flag somewhere 9. When flag is set, on next Idling the handler unregisters itself
18 Modeless dialog workflow Return to Revit Command or OnStart Dialog request Set (& wait) Create a Dialog Modeless Dialog Request_Id Make API Calls Unsubscribe from Idling Get & Reset No No Subscribe to Idling Request Handler Got a request? Dialog closed? Close Dialog Return to Revit Dialog Still open? No Idling raised OnShutDown
19 A workflow with a twist When changes to the model on individual interaction are not atomic, the Idling even is not enough; the DocumentChanged event must also be utilized. The differences from the basic workflow are: 1. Subscribe to Idling and DocumentChanged 2. On each document-changed event 1. Check if any data related to the process changed, and if so: 2. Clear the Model of the obsolete data 3. And restart the worker process
20 The Idling event s details Idling is a UI-concept It is in RevitAPIUI & the sender is UIApplication Idling is raised when: Revit is not doing anything and is ready to do something No command executing, no editor running, no transaction open Idling is raised a lot, it should not be abused Spend as little time in the handler as possible If you need to do more, do it in another thread Just being subscribed can slow down your computer Only subscribe when you need it And unsubscribe as soon as you do not need it
21 The DocumentChanged event Technically not part of a transaction Runs before a transaction ends but after Updaters It runs when a transaction is either committed or rolled back It also runs when transaction(s) is/are undone or redone Handler is not permitted to make model changes Handler has access to three sets of changed elements: Added elements Modified elements Deleted elements
22 How stuff works
23 How stuff works in the Revit API Regeneration modes Transaction modes Document modifiability Element validity Object lifespan API events External commands API callbacks Dynamic updaters API Scopes API Firewall
24 Regeneration modes Automatic mode is obsolete Only the Manual mode is supported It does not have to be declared (and should not be) Things to remember Programmers invoke regeneration as they need it A changed model should be regenerated before it is read from Regeneration is smart it only updates parts that need it End of a transaction always triggers regeneration A regeneration alone is sometimes not enough
25 Transaction modes Automatic mode For compatibility only (possibly going to be phased out) Manual mode The preferred way Read-Only mode Guarantees the active document does not get modified Transaction mode applies to external commands only Event handlers invoked during a command are on their own
26 Transactions Transactions may not be nested! Only groups and sub-transactions may be nested (properly) Transactions may fail - always check the status! Transaction being committed may actually return the RolledBack status instead of Committed API transaction failures are handled modally by default Modeless handling is possible, but requires using the Transaction Finalizer (use cautiously)
27 Document modifiability Document is Modifiable If it has an open transaction and is not in read-only state If a document is ReadOnly It is permanently or temporary in a read-only state Document is ReadOnlyFile This property only refers to the actual file on disk To be able to start a transaction: Document must not be read-only Document must not be modifiable yet
28 Element validity An element ceases to exist when: The element is deleted Creation of the element is undone Deletion of the element is redone The element-creating transaction was rolled back The native object is physically deleted The element comes back to life when: The deletion of the element was undone The creation of the element was redone (This resurrecting only works for elements)
29 Object lifespan Most objects are wrappers around native instances Some wrappers own native objects, some don t Control lifespan with the using block Particularly important with transaction phases Garbage collector takes care of managed objects But Revit does not delete collected native resources You can purge them explicitly by calling PurgeReleasedAPIObjects
30 API Event crash course Handlers are called on first-come-first-served basis Pre-events are raised before post-events Invocation loop stops by cancelling the event Post-events are always raised Document-level handlers are no longer called first Handlers are not permitted to use modeless failure handling Managed events depend on event observers in Revit There is an API Firewall around every call out A command that breaks the rules of the firewall will be discarded
31 API Events for the curious Managed events depend on native event observers in Revit All managed handlers of a particular event are grouped in one internal observer of that event Application vs. the Controlled Application events These subscriptions are virtually identical Subscribes are held in one common repository Unsubscribing from events during events is possible One can unsubscribe from any other event Even from the one currently being handled
32 External commands A command may be invoked only when: No other command is being executed No edit mode or editor is in effect No transaction or groups are open in the active document Revit does not guarantee any lifetime of a command Changes made by failed commands are discarded There is an API Firewall around every call out A command that breaks the rules of the firewall will be discarded
33 API callbacks Delegates given to Revit to be invoked later Callback classes names start with an I Dynamic updater - IUpdater Transaction Finalize - ITransactionFinalizer Callbacks are not just managed delegates Every callback has a native part, which is called first and bypasses the calls to the managed object Callbacks lifespan is not always controlled by Revit
34 Dynamic updaters They technically extend model regeneration outside of Revit They are invoked at the end of a committed transaction Updaters are not invoked for undone and redone transactions Registering and unregistering is not allowed during updates Certain API methods are forbidden during execution Updates provide access to changed elements: Added and deleted rule each other out Changed elements were neither added nor deleted
35 API Scope API Invocations may be nested, for example: Revit may invoke a command triggering an event to be handled triggering another event to be handled causing a dynamic updater to be executed The invoked executors may be from different applications Revit keeps a FILO stack of the executors Revit knows the application running atop And uses it sometimes to grant or refuse certain operations The first-level executor is responsible for mistakes
36 API Firewall It is around API invocations Particularly those allowed to have their own transactions It guards tasks to be finished properly Nothing is allowed to be left open in the active document If that happens, the procedure is rendered a failure If the active document is allowed to change: The formerly active document must be free of transactions This is currently allowed during commands only (not events)
37 Summary
38 What we have learned I shall not call the API unless invoked by it I shall not call the API from a different thread I shall call the API only, not the UI I shall use the Idling event efficiently
39 Questions?
40 Autodesk, AutoCAD* [*if/when mentioned in the pertinent material, followed by an alphabetical list of all other trademarks mentioned in the material] are registered trademarks or trademarks of Autodesk, Inc., and/or its subsidiaries and/or affiliates in the USA and/or other countries. All other brand names, product names, or trademarks belong to their respective holders. Autodesk reserves the right to alter product and services offerings, and specifications and pricing at any time without notice, and is not responsible for typographical or graphical errors that may appear in this document., Inc. All rights reserved.
Locking and Worksharing in Revit Server
AUTODESK BUILDING INFORMATION MODELING Locking and Worksharing in Revit Server Understanding the various lock types used by Revit and Revit Server Introduction Revit uses a system of permissions and locks
More informationAutodesk Revit Architecture 2011
Autodesk Revit Architecture 2011 What s New Image courtesy of Cannon Design Top Features Autodesk Revit Architecture 2011 Software Large Team Workflow Ease of Use Analysis and Visualization ation And Performance
More informationArchitectural Visualization Workflow in Autodesk Building Design Suite 2013
Architectural Visualization Workflow in Autodesk Building Design Suite 2013 Marvi Basha TU Graz Class Summary - What is Arch-Viz? - Revit vs. 3Ds Max - Workflow - Post Production Class Summary - What is
More informationJava EE Architecture, Part Two. Java EE architecture, part two 1
Java EE Architecture, Part Two Java EE architecture, part two 1 Content Requirements on the Business layer Framework Independent Patterns Transactions Frameworks for the Business layer Java EE architecture,
More informationInstall and Known Issues
Autodesk A360 Collaboration for Revit version 2015.5 Install and Known Issues Introduction: Autodesk A360 Collaboration for Revit version 2015.5 Autodesk A360 Collaboration for Revit version 2015.5 can
More informationIntroduction to OpenMP
Introduction to OpenMP p. 1/?? Introduction to OpenMP Simple SPMD etc. Nick Maclaren nmm1@cam.ac.uk September 2017 Introduction to OpenMP p. 2/?? Terminology I am badly abusing the term SPMD tough The
More informationProgram Validation & Data Management Using Autodesk Revit + drofus + an IFC Model Server
Program Validation & Data Management Using Autodesk Revit + drofus + an IFC Model Server Rolf Jerving CEO Class Summary In this class, I will focus on new workflows enabled by combining Autodesk Revit
More informationApacheCon NA How to Avoid Common Mistakes in OFBiz Development Presented by Adrian Crum
ApacheCon NA 2015 How to Avoid Common Mistakes in OFBiz Development Presented by Adrian Crum 1Tech, Ltd. 29 Harley Street, London, W1G 9QR, UK www.1tech.eu 1 Overview Common Getting Started Problems Common
More informationCS 3 Introduction to Software Engineering. 3: Exceptions
CS 3 Introduction to Software Engineering 3: Exceptions Questions? 2 Objectives Last Time: Procedural Abstraction This Time: Procedural Abstraction II Focus on Exceptions. Starting Next Time: Data Abstraction
More informationProgramming Autodesk Vault with the VDF. Dennis Mulonas and Doug Redmond Software Engineers, Autodesk
Programming Autodesk Vault with the VDF Dennis Mulonas and Doug Redmond Software Engineers, Autodesk Introduction This class will go over new API features in Autodesk Vault 2014. Most of the content will
More informationNetworking AutoCAD for Control and Speed
Networking AutoCAD for Control and Speed Robert Green CAD-Manager.com Quick bio Mechanical engineer turned computer geek Private consultant since 1991 Focusing on CAD standardization, customization and
More informationAutodesk Revit Structure Autodesk
Autodesk Revit Structure 2011 What s New Top Features Autodesk Revit Structure 2011 Software Enhanced Design Features Fit and Finish Slanted columns Beam systems and trusses Concrete clean-up Concrete
More informationAutodesk Software Grant for F1 in Schools Step by Step Instructions
Autodesk Software Grant for F1 in Schools Step by Step Instructions John Helfen Partnership Strategy Manager, Autodesk Education 2013 Autodesk Autodesk Software Students and Institution Student/Faculty/Mentor
More informationExceptions in Java
Exceptions in Java 3-10-2005 Opening Discussion Do you have any questions about the quiz? What did we talk about last class? Do you have any code to show? Do you have any questions about the assignment?
More informationAutodesk Vault What s new in 2015
Autodesk Vault What s new in 2015 Lieven Grauls Technical Manager Manufacturing - Autodesk Digital Prototyping with Vault Autodesk Vault 2015 What s new Improved integration Updates to CAD add-ins Data
More informationExt3/4 file systems. Don Porter CSE 506
Ext3/4 file systems Don Porter CSE 506 Logical Diagram Binary Formats Memory Allocators System Calls Threads User Today s Lecture Kernel RCU File System Networking Sync Memory Management Device Drivers
More informationInside core.async Channels. Rich Hickey
Inside core.async s Rich Hickey Warning! Implementation details Subject to change The Problems Single channel implementation For use from both dedicated threads and go threads simultaneously, on same channel
More informationAutodesk Subscription. Maximize the power of your design tools.
Autodesk Subscription Maximize the power of your design tools. What Does Autodesk Subscription Offer? With Autodesk Subscription you always have access to the most current and powerful set of software
More informationò Very reliable, best-of-breed traditional file system design ò Much like the JOS file system you are building now
Ext2 review Very reliable, best-of-breed traditional file system design Ext3/4 file systems Don Porter CSE 506 Much like the JOS file system you are building now Fixed location super blocks A few direct
More informationStand-Alone Installation Guide and Getting Started with Autodesk Ecotect Analysis
Autodesk Ecotect Analysis 2010 Stand-Alone Installation Guide and Getting Started with Autodesk Ecotect Analysis This document describes how to install and activate Autodesk Ecotect Analysis 2010 software
More informationProject Collaboration
Bonus Chapter 8 Project Collaboration It s quite ironic that the last bonus chapter of this book contains information that many of you will need to get your first Autodesk Revit Architecture project off
More informationSoftware Exception Flow Analysis for WPF C# Asynchronous Programs Using Microsoft Visual Studio
Software Exception Flow Analysis for WPF C# Asynchronous Programs Using Microsoft Visual Studio Summary Recently, I was working on an implementation of a new software product feature based on asynchronous
More informationMonitoring Serverless Architectures in AWS
Monitoring Serverless Architectures in AWS The introduction of serverless architectures is a positive development from a security perspective. Splitting up services into single-purpose functions with well-defined
More informationQuestions and Answers
Autodesk Subscription Questions and Answers This document features frequently asked questions and answers that explain Autodesk Subscription program benefits, including the Autodesk 360 cloud platform
More informationVirtual CD TS 1 Introduction... 3
Table of Contents Table of Contents Virtual CD TS 1 Introduction... 3 Document Conventions...... 4 What Virtual CD TS Can Do for You...... 5 New Features in Version 10...... 6 Virtual CD TS Licensing......
More informationPack Manager Program System Design Document
PACK MANAGER PROGRAM SYSTEM DESIGN DOCUMENT 1 Pack Manager Program System Design Document Latest Revision: 26 March 2014 Prepared by: Naing Htet Abstract This document describes the design of the software
More informationUsing the Revit Extensions for Steel Framed Floor Design and Analysis
Using the Revit Extensions for Steel Framed Floor Design and Analysis David J. Odeh, PE, SECB Odeh Engineers, Inc., North Providence, RI Many structural engineering firms have adopted Autodesk Revit Structure
More informationWhat s New in Autodesk V a ul t 20 18
What s New in Autodesk V a ul t 20 18 Welcome & Agenda Introduction to Vault 2018 Enhanced Design Experience Engineering Efficiency Enabled Administration Tasks Delegation Autodesk Vault 2018 Building
More informationDeadlock and Starvation
Chapter 6 Deadlock and Starvation We now look into two more issues that make concurrent processing so much more difficult: deadlock and starvation. We will look at the problems first, and discuss a few
More informationGEN9638: Forensic CADology: When Good DWG Files Go Bad
GEN9638: Forensic CADology: When Good DWG Files Go Bad David Park CAD/BIM Coordinator Steven Litzau, P.E. Manager of Design Technology Join the conversation Class summary An Intermediate to Advanced Level
More informationC# Asynchronous Programming Model
Spring 2014 C# Asynchronous Programming Model A PRACTICAL GUIDE BY CHRIS TEDFORD TABLE OF CONTENTS Introduction... 2 Background Information... 2 Basic Example... 3 Specifications and Usage... 4 BeginInvoke()...
More informationStructure of Programming Languages Lecture 10
Structure of Programming Languages Lecture 10 CS 6636 4536 Spring 2017 CS 6636 4536 Lecture 10: Classes... 1/23 Spring 2017 1 / 23 Outline 1 1. Types Type Coercion and Conversion Type Classes, Generics,
More informationThe issues. Programming in C++ Common storage modes. Static storage in C++ Session 8 Memory Management
Session 8 Memory Management The issues Dr Christos Kloukinas City, UoL http://staff.city.ac.uk/c.kloukinas/cpp (slides originally produced by Dr Ross Paterson) Programs manipulate data, which must be stored
More informationActors in the Small. Making Actors more Useful. Bill La
Actors in the Small Making Actors more Useful Bill La Forge laforge49@gmail.com @laforge49 Actors in the Small I. Introduction II. Making Actors Fast III.Making Actors Easier to Program IV. Tutorial I.
More informationTackling Concurrency With STM. Mark Volkmann 10/22/09
Tackling Concurrency With Mark Volkmann mark@ociweb.com 10/22/09 Two Flavors of Concurrency Divide and conquer divide data into subsets and process it by running the same code on each subset concurrently
More informationTackling Concurrency With STM
Tackling Concurrency With Mark Volkmann mark@ociweb.com 10/22/09 Two Flavors of Concurrency Divide and conquer divide data into subsets and process it by running the same code on each subset concurrently
More informationWhat s New in Autodesk Revit Structure Autodesk
What s New in Autodesk Revit Structure 2010 Top Features Modeling and Analysis Enhanced Modeling Capabilities Slanted columns Conceptual form modeling Bridge modeling Steel connection modeling Conceptual
More informationCreating Fills and Transparency in SketchBookk Designer
Autodesk Design Suite 2012 Autodesk SketchBook Designer 2012 Tip Guides Creating Fills and Transparency in SketchBookk Designer In this section you will learn the following: When to convert AutoCAD layers
More informationMozart System Limitations for Version (draft)
Mozart System Limitations for Version 1.3.0 (draft) Peter Van Roy and Seif Haridi April 28, 2004 In der Beschränkung zeigt sich erst der Meister. Within limitations the Master is first revealed. Johann
More informationThe Slide does not contain all the information and cannot be treated as a study material for Operating System. Please refer the text book for exams.
The Slide does not contain all the information and cannot be treated as a study material for Operating System. Please refer the text book for exams. System Model Deadlock Characterization Methods of handling
More informationBest Practices for Loading Autodesk Inventor Data into Autodesk Vault
AUTODESK INVENTOR WHITE PAPER Best Practices for Loading Autodesk Inventor Data into Autodesk Vault The most important item to address during the implementation of Autodesk Vault software is the cleaning
More informationUpdate Enhancement List
AUTODESK REVIT 2015 Update Enhancement List * Indicates an issue that was reported by a Revit user. ** Indicates an issue resolved within the Multi-Category Schedules Hotfix for Autodesk Revit 2015 Update
More informationPlant 3D Water content Workflow to transfer to Civil 3D
Enterprise Priority Support Plant 3D Water content Workflow to transfer to Civil 3D Rodney Page Morgan Smith Premium Support Specialists PSS APAC Delivery Team 2016 Autodesk Autodesk Project Kameleon Used
More informationSD Get More from 3ds Max with Custom Tool Development
SD21033 - Get More from 3ds Max with Custom Tool Development Kevin Vandecar Forge Developer Advocate @kevinvandecar Join the conversation #AU2016 bio: Kevin Vandecar Based in Manchester, New Hampshire,
More informationWhy Deprecating async() is the Worst of all Options
Doc No: WG21 N3780 Date: 2013-09-26 Reply to: Nicolai Josuttis (nico@josuttis.de) Subgroup: SG1 Concurrency Prev. Version: none Why Deprecating async() is the Worst of all Options The concurrency working
More informationAsynchronous Functions in C#
Asynchronous Functions in C# Asynchronous operations are methods and other function members that may have most of their execution take place after they return. In.NET the recommended pattern for asynchronous
More informationRevit + FormIt Dynamo Studio = Awesome!
Revit + FormIt 360 + Dynamo Studio = Awesome! Carl Storms IMAGINiT Technologies - Senior Applications Expert @thebimsider Join the conversation #AU2016 Class summary This lab session will focus on some
More informationFairCom White Paper Caching and Data Integrity Recommendations
FairCom White Paper Caching and Data Integrity Recommendations Contents 1. Best Practices - Caching vs. Data Integrity... 1 1.1 The effects of caching on data recovery... 1 2. Disk Caching... 2 2.1 Data
More informationHOUR 4 Understanding Events
HOUR 4 Understanding Events It s fairly easy to produce an attractive interface for an application using Visual Basic.NET s integrated design tools. You can create beautiful forms that have buttons to
More informationCHAPTER 3 RECOVERY & CONCURRENCY ADVANCED DATABASE SYSTEMS. Assist. Prof. Dr. Volkan TUNALI
CHAPTER 3 RECOVERY & CONCURRENCY ADVANCED DATABASE SYSTEMS Assist. Prof. Dr. Volkan TUNALI PART 1 2 RECOVERY Topics 3 Introduction Transactions Transaction Log System Recovery Media Recovery Introduction
More informationTS Thread Library Reference. Version 6.2, December 2004
TS Thread Library Reference Version 6.2, December 2004 IONA, IONA Technologies, the IONA logo, Orbix, Orbix/E, Orbacus, Artix, Orchestrator, Mobile Orchestrator, Enterprise Integrator, Adaptive Runtime
More informationChapter 1: Distributed Information Systems
Chapter 1: Distributed Information Systems Contents - Chapter 1 Design of an information system Layers and tiers Bottom up design Top down design Architecture of an information system One tier Two tier
More informationText Input and Conditionals
Text Input and Conditionals Text Input Many programs allow the user to enter information, like a username and password. Python makes taking input from the user seamless with a single line of code: input()
More informationSubversion FOUR. 4.1 What is Version Control? 4.2 What is Subversion? Types of Version Control SESSION
SESSION FOUR 4.1 What is Version Control? Subversion Version control or revision control is the management of the evolution of information. Typically it is used in engineering or software development where
More informationOperating Systems. Operating Systems Sina Meraji U of T
Operating Systems Operating Systems Sina Meraji U of T Remember example from third week? My_work(id_t id) { /* id can be 0 or 1 */... flag[id] = true; /* indicate entering CS */ while (flag[1-id]) ;/*
More informationCMSC 330: Organization of Programming Languages
CMSC 330: Organization of Programming Languages Memory Management and Garbage Collection CMSC 330 - Spring 2013 1 Memory Attributes! Memory to store data in programming languages has the following lifecycle
More informationJournaling. CS 161: Lecture 14 4/4/17
Journaling CS 161: Lecture 14 4/4/17 In The Last Episode... FFS uses fsck to ensure that the file system is usable after a crash fsck makes a series of passes through the file system to ensure that metadata
More informationOrbix TS Thread Library Reference
Orbix 6.3.9 TS Thread Library Reference Micro Focus The Lawn 22-30 Old Bath Road Newbury, Berkshire RG14 1QN UK http://www.microfocus.com Copyright Micro Focus 2017. All rights reserved. MICRO FOCUS, the
More informationExtending BPEL with transitions that can loop
Extending BPEL with transitions that can loop ActiveVOS linksaretransitions BPEL Extension AN ACTIVE ENDPOINTS PAPER AUTHOR: DR MICHAEL ROWLEY 2009 Active Endpoints Inc. ActiveVOS is a trademark of Active
More informationAutodesk Vault and Data Management Questions and Answers
Autodesk Civil 3D 2007 Autodesk Vault and Data Management Questions and Answers Autodesk Civil 3D software is a powerful, mature, civil engineering application designed to significantly increase productivity,
More informationWhat s new in Autodesk 3ds Max 2016
What s new in Autodesk 3ds Max 2016 Cadline Community 3ds Max 2016 3ds Max and 3ds Max Design Are Coming Together United for this release. Design-only features are now in 3ds Max 2016. 3ds Max 2016 A Unified
More informationOracle Banking Digital Experience
Oracle Banking Digital Experience Core Corporate Admin User Manual Release 17.2.0.0.0 Part No. E88573-01 July 2017 Core Corporate Admin User Manual July 2017 Oracle Financial Services Software Limited
More informationBest Practices for Implementing Autodesk Vault
AUTODESK VAULT WHITE PAPER Best Practices for Implementing Autodesk Vault Introduction This document guides you through the best practices for implementing Autodesk Vault software. This document covers
More informationCreate Effective Instructions Basics and Everyday Workflows for Autodesk Inventor Publisher
Create Effective Instructions Basics and Everyday Workflows for Autodesk Inventor Publisher Anirban Ghosh Principal User Experience Designer Tyler Barnes Senior Product Manager Class Summary We all need
More informationProposed Wording for Concurrent Data Structures: Hazard Pointer and Read Copy Update (RCU)
Document number: D0566R1 Date: 20170619 (pre Toronto) Project: Programming Language C++, WG21, SG1,SG14, LEWG, LWG Authors: Michael Wong, Maged M. Michael, Paul McKenney, Geoffrey Romer, Andrew Hunter
More informationIBM Tivoli Composite Application Manager for Microsoft Applications: Microsoft.NET Framework Agent Fix Pack 13.
IBM Tivoli Composite Application Manager for Microsoft Applications: Microsoft.NET Framework Agent 6.3.1 Fix Pack 13 Reference IBM IBM Tivoli Composite Application Manager for Microsoft Applications:
More informationCS 160: Interactive Programming
CS 160: Interactive Programming Professor John Canny 3/8/2006 1 Outline Callbacks and Delegates Multi-threaded programming Model-view controller 3/8/2006 2 Callbacks Your code Myclass data method1 method2
More informationGuide to Business Continuity Preparedness
Guide to Business Continuity Preparedness Released June 22, 2016 Revised June 6, 2018 duo.com Table of contents 1. Overview Why do I need this guide? Planning for success 2. Types of outages How do I know
More informationSchedules Can t Do That in Revit 2017
Schedules Can t Do That in Revit 2017 Michael Massey Senior AEC Application Consultant @mgmassey01 Join the conversation #AU2016 Presenting Today.. Mike Massey Senior AEC Application Specialist 25+ Years
More informationUpdate Enhancement List
AUTODESK REVIT 2015 Update Enhancement List * Indicates an issue that was reported by a Revit user. Improvements made in Update Release 14 Revit 2015 build: 20160512_1515 Revit 2015 R2 build: 20160512_0715
More informationQuestions and Answers
Autodesk Revit Architecture 2010 Questions and Answers Autodesk Revit Architecture 2010 software works the way architects and designers think, allowing you to work naturally, design freely, and deliver
More informationRUNTIME PERMISSIONS IN ANDROID 6.0 Lecture 10a
RUNTIME PERMISSIONS IN ANDROID 6.0 Lecture 10a COMPSCI 702 Security for Smart-Devices Muhammad Rizwan Asghar March 20, 2018 2 ANDROID 6.0 A version of the Android mobile operating system officially released
More informationTestworks User Guide. Release 1.0. Dylan Hackers
Testworks User Guide Release 1.0 Dylan Hackers April 10, 2019 CONTENTS 1 Testworks Usage 1 1.1 Quick Start................................................ 1 1.2 Defining Tests..............................................
More informationHistory...: Displays a window of Gitk, a standard commit viewer for Git.
Git Services Wakanda includes Git features that will help you manage the evolution of your solutions and files. These features are designed to share code as well as to handle multi developer projects and
More informationOperating Systems. Overview Virtual memory part 2. Page replacement algorithms. Lecture 7 Memory management 3: Virtual memory
Operating Systems Lecture 7 Memory management : Virtual memory Overview Virtual memory part Page replacement algorithms Frame allocation Thrashing Other considerations Memory over-allocation Efficient
More informationCopyright. Restricted Rights Legend. Trademarks or Service Marks. Copyright 2003 BEA Systems, Inc. All Rights Reserved.
Version 8.1 SP4 December 2004 Copyright Copyright 2003 BEA Systems, Inc. All Rights Reserved. Restricted Rights Legend This software and documentation is subject to and made available only pursuant to
More informationDistributed Systems. The main method of distributed object communication is with remote method invocation
Distributed Systems Unit III Syllabus:Distributed Objects and Remote Invocation: Introduction, Communication between Distributed Objects- Object Model, Distributed Object Modal, Design Issues for RMI,
More information6.830 Lecture Recovery 10/30/2017
6.830 Lecture 14 -- Recovery 10/30/2017 Have been talking about transactions Transactions -- what do they do? Awesomely powerful abstraction -- programmer can run arbitrary mixture of commands that read
More informationWhat s New in Autodesk Constructware 2013 Release
Autodesk Constructware 2013 What s New in Autodesk Constructware 2013 Release Figure 1. Autodesk Constructware 2013 Autodesk Constructware web-based project management software enables construction firms
More informationCOPYRIGHTED MATERIAL. Table of Contents. Foreword... xv. About This Book... xvii. About The Authors... xxiii. Guide To The Reader...
Table of Contents Foreword..................... xv About This Book... xvii About The Authors............... xxiii Guide To The Reader.............. xxvii Part I Some Concepts.................. 1 1 On Patterns
More informationJava Without the Jitter
TECHNOLOGY WHITE PAPER Achieving Ultra-Low Latency Table of Contents Executive Summary... 3 Introduction... 4 Why Java Pauses Can t Be Tuned Away.... 5 Modern Servers Have Huge Capacities Why Hasn t Latency
More informationD Programming Language
Group 14 Muazam Ali Anil Ozdemir D Programming Language Introduction and Why D? It doesn t come with a religion this is written somewhere along the overview of D programming language. If you actually take
More informationCS 241 Honors Memory
CS 241 Honors Memory Ben Kurtovic Atul Sandur Bhuvan Venkatesh Brian Zhou Kevin Hong University of Illinois Urbana Champaign February 20, 2018 CS 241 Course Staff (UIUC) Memory February 20, 2018 1 / 35
More informationLinking RISA Software with Revit 2017: Beyond the Basics
Linking RISA Software with Revit 2017: Beyond the Basics Matt Brown, S.E. RISA Technologies Join the conversation #AU2016 Class summary The Link between RISA and Revit has existed for more than a decade
More informationThese are notes for the third lecture; if statements and loops.
These are notes for the third lecture; if statements and loops. 1 Yeah, this is going to be the second slide in a lot of lectures. 2 - Dominant language for desktop application development - Most modern
More informationQuestions and Answers
Autodesk Simulation 360 September 11, 2012 Questions and Answers Autodesk Simulation 360 provides powerful, flexible access to simulation software delivered securely in the cloud. Contents 1. General Product
More informationThread Safety. Review. Today o Confinement o Threadsafe datatypes Required reading. Concurrency Wrapper Collections
Thread Safety Today o Confinement o Threadsafe datatypes Required reading Concurrency Wrapper Collections Optional reading The material in this lecture and the next lecture is inspired by an excellent
More informationSD21181-L : Coding New Nodes with Dynamo
SD21181-L : Coding New Nodes with Dynamo Adam Sheather BIM Manager Applications & Technical Development @ AECOM Twitter: @gytaco Join the conversation #AU2016 Who am I? 15+ years in Buildings, Transport
More informationHow to speed up a database which has gotten slow
Triad Area, NC USA E-mail: info@geniusone.com Web: http://geniusone.com How to speed up a database which has gotten slow hardware OS database parameters Blob fields Indices table design / table contents
More informationOracle Banking Digital Experience
Oracle Banking Digital Experience Core Corporate Admin User Manual Release 17.1.0.0.0 Part No. E83887-01 March 2017 Core Corporate Admin User Manual March 2017 Oracle Financial Services Software Limited
More informationDesign Visualization with Autodesk Alias, Part 2
Design Visualization with Autodesk Alias, Part 2 Wonjin John Autodesk Who am I? Wonjin John is an automotive and industrial designer. Born in Seoul, Korea, he moved to United States after finishing engineering
More informationTroubleshooting Revit Using Journal Files
Troubleshooting Revit Using Journal Files Fernanda Lima Firman Frontline Technical Specialist Goal Our goal is to ensure you are familiar with the information recorded in the journals and to share with
More informationGetting Started with Autodesk Vault Programming
Getting Started with Autodesk Vault Programming Doug Redmond Autodesk CP4534 An introduction to the customization options provided through the Vault APIs. Learning Objectives At the end of this class,
More informationOracle Warehouse Builder 10g Runtime Environment, an Update. An Oracle White Paper February 2004
Oracle Warehouse Builder 10g Runtime Environment, an Update An Oracle White Paper February 2004 Runtime Environment, an Update Executive Overview... 3 Introduction... 3 Runtime in warehouse builder 9.0.3...
More informationAutodesk SIM 360 Pro FY14 Product Launch FAQ for Autodesk Customers
Autodesk SIM 360 Pro FY14 Product Launch FAQ for Autodesk Customers imaginit.com/sim360 The purpose of this FAQ document is to provide Autodesk customers and prospects information about the Autodesk SIM
More informationHomework # 7 Distributed Computing due Saturday, December 13th, 2:00 PM
Homework # 7 Distributed Computing due Saturday, December 13th, 2:00 PM In this homework you will add code to permit a calendar to be served to clients, and to open a calendar on a remote server. You will
More informationSpeed Up Windows by Disabling Startup Programs
Speed Up Windows by Disabling Startup Programs Increase Your PC s Speed by Preventing Unnecessary Programs from Running Windows All S 630 / 1 When you look at the tray area beside the clock, do you see
More informationUpcoming Features in C# Mads Torgersen, MSFT
Upcoming Features in C# Mads Torgersen, MSFT This document describes language features currently planned for C# 6, the next version of C#. All of these are implemented and available in VS 2015 Preview.
More informationThe power of BIM for structural engineering. Autodesk Revit. Structure
The power of BIM for structural engineering. Autodesk Revit Structure Improve Efficiency, Accuracy, and Coordination Concurrent modeling for structural design, analysis, and coordinated documentation Building
More informationAutoCAD Lynn Allen s Tips and Tricks
AutoCAD 2012 Lynn Allen s Tips and Tricks AutoCAD 2012 Lynn Allen s Tips and Tricks NOTE You must install Autodesk Inventor Fusion 2012 to use it. In Fusion you can zoom, pan, and orbit to navigate around
More information