                         @_update_queue_stop = stop
                     @process_sage_update_queue()
 
-
     close: =>
         @execution_queue?.close()
         super()

        if changeObj.next?
            @_apply_changeObj(changeObj.next)

    cell: (line) ->
        return new SynchronizedWorksheetCell(@, line)
        # CRITICAL: We do **NOT** cache cells.  The reason is that client code should create
        # a cell for a specific purpose then forget about it as soon as that is done!!!
        # The reason is that at any time new input cell lines can be added in the

            if opts.pos?
                cells = [@cell(opts.pos.line)]
            else
                create = opts.execute
                cells = @get_current_cells(create)
            for cell in cells
                cell.action
                    execute       : opts.execute
