I missed a few WIP builds, but am now using build 5A851 and am getting some hangs at times when I didn’t used to get them. For example, I just saw this hang when deleting an block instance object in a document that has about 20 linked and embedded blocks.
The hang lasts for 10-20 seconds (on a few-year-old Mac Pro), and sampling Rhinoceros during the hang shows it spending time under:
1265 SelectionObserver::OnDeleteObject(CRhinoDoc&, CRhinoObject&) (in Rhinoceros) + 89 [0x106ff6ab9]
: 1265 -[NSNotificationCenter postNotificationName:object:userInfo:] (in Foundation) + 66 [0x7fff94b339d1]
: 1265 _CFXNotificationPost (in CoreFoundation) + 3140 [0x7fff91586634]
: 1265 CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER (in CoreFoundation) + 12 [0x7fff9169645c]
: 1264 ON_ClassArray::SetCapacity(int) (in Rhinoceros) + 19219 [0x107115003]
: | 1256 -[NSArrayController didChangeValuesForArrangedKeys:objectKeys:indexKeys:] (in AppKit) + 126 [0x7fff9550b5d6]
: | + 1256 -[NSController _notifyObserversForKeyPath:change:] (in AppKit) + 206 [0x7fff954aafa2]
: | + 1256 -[NSObject(NSKeyValueObservingPrivate) _notifyObserversForKeyPath:change:] (in Foundation) + 1142 [0x7fff94b78e96]
: | + 1256 NSKeyValueNotifyObserver (in Foundation) + 382 [0x7fff94b6e0f3]
: | + 1256 -[NSTextValueBinder _observeValueForKeyPath:ofObject:context:] (in AppKit) + 43 [0x7fff95562201]
: | + 1256 -[NSValueBinder _observeValueForKeyPath:ofObject:context:] (in AppKit) + 276 [0x7fff954b70af]
: | + 1255 -[NSValueBinder _adjustObject:mode:observedController:observedKeyPath:context:editableState:adjustState:] (in AppKit) + 302 [0x7fff954b7270]
: | + ! 1255 -[NSBinder valueForBinding:resolveMarkersToPlaceholders:] (in AppKit) + 164 [0x7fff954b3c46]
: | + ! 1255 -[NSObject(NSKeyValueCoding) valueForKeyPath:] (in Foundation) + 272 [0x7fff94b6791d]
: | + ! 1255 -[NSArrayController _singleValueForKeyPath:] (in AppKit) + 127 [0x7fff956c00ae]
: | + ! 1255 -[NSObject(NSKeyValueCoding) valueForKeyPath:] (in Foundation) + 324 [0x7fff94b67951]
: | + ! 1255 -[NSObject(NSKeyValueCoding) valueForKey:] (in Foundation) + 385 [0x7fff94b54c3b]
: | + ! 1255 CViewportPropertiesDlg::OnEnKillfocusERotation() (in Rhinoceros) + 13149 [0x10714dd97]
: | + ! 1253 rhInstanceArchiveFileStatusString(CRhinoInstanceDefinition const*, ON_wString&) (in Rhinoceros) + 186 [0x107152179]
: | + ! : 963 ON_CheckSum::CheckFile(__sFILE*, bool) const (in Rhinoceros) + 221 [0x107b11dd7]
: | + ! : | 963 ON_CRC32 (in Rhinoceros) + 42,35,… [0x107a40d8d,0x107a40d86,…]
: | + ! : 288 ON_CheckSum::CheckFile(__sFILE*, bool) const (in Rhinoceros) + 262 [0x107b11e00]
: | + ! : | 257 fread (in libsystem_c.dylib) + 48 [0x7fff9436cb90]
so it’s spending lots of time doing CRC checksumming (reading from disk) to update rhInstanceArchiveFileStatusString?
I’d rather not attach the model that causes this, but can submit privately if you need it for testing.
SimonSample of Rhinoceros.txt (131.9 KB)