I was wondering what triggers the release of file locks in pyQGIS? 

I am trying to delete a few data sources (used temporarily) by calling `QgsVectorFileWriter.deleteShapeFile`, but I have to quit QGIS before I can do that. I have loaded the sources into QgsVectorLayer objects. Must all of these objects and references to them be garbage collected before I can delete the source? Is there a way to force this?

**UPDATE:** I've managed to create a minimal code sample that fails.

    from qgis.core import *
    import processing, os, gc

    project_temp_dir = "C:/Path/To/My/Dir/"
    layer1_path = project_temp_dir + "layer1.shp"
    layer2_path = project_temp_dir + "layer2.shp"
    input_layer = QgsMapLayerRegistry.instance().mapLayersByName('in_layer')[0]
    if not input_layer.isValid(): raise Exception("Failed to grab input layer")

    # Create layer 1
    err = QgsVectorFileWriter.writeAsVectorFormat(input_layer, layer1_path, "utf-8", input_layer.crs())   
    if err != QgsVectorFileWriter.NoError: raise Exception("Failed to write layer 1")

    # Load layer 1
    layer1 = QgsVectorLayer(layer1_path, "lyr1", "ogr")
    if not layer1.isValid(): raise Exception("Failed to load layer 1")

    # Use layer 1 to create layer 2, read-only makes no difference
    # if not layer1.setReadOnly(): raise Exception("Could not set layer 1 to read-only")
    processing.runalg("qgis:reprojectlayer", layer1, "EPSG:54030", layer2_path)

    # Load layer 2
    layer2 = QgsVectorLayer(layer2_path, "lyr2", "ogr")
    if not layer2.isValid(): raise Exception("Failed to load layer 2")
    
    del layer1
    del layer2 
    del input_layer
    gc.collect()
    print "Garbage: " + str(gc.garbage) # Empty

    # Remove data sources for layers
    for f in os.listdir(project_temp_dir):			
        if f.endswith(".shp") and not os.path.isdir(project_temp_dir + f): 				
            if not QgsVectorFileWriter.deleteShapeFile(project_temp_dir + f):
                # F*%&ing locks. 
                print "Failed to clear project temp directory."