[51133] trunk/base/src
jmr at macports.org
jmr at macports.org
Mon May 18 17:54:46 PDT 2009
Revision: 51133
http://trac.macports.org/changeset/51133
Author: jmr at macports.org
Date: 2009-05-18 17:54:45 -0700 (Mon, 18 May 2009)
Log Message:
-----------
implement registry::close_file_map, use correctly (fixes #16246), also use register_bulk_files in an appropriate place
Modified Paths:
--------------
trunk/base/src/pextlib1.0/tracelib.c
trunk/base/src/port/port.tcl
trunk/base/src/registry1.0/portimage.tcl
trunk/base/src/registry1.0/receipt_flat.tcl
trunk/base/src/registry1.0/registry.tcl
Modified: trunk/base/src/pextlib1.0/tracelib.c
===================================================================
--- trunk/base/src/pextlib1.0/tracelib.c 2009-05-18 23:53:42 UTC (rev 51132)
+++ trunk/base/src/pextlib1.0/tracelib.c 2009-05-19 00:54:45 UTC (rev 51133)
@@ -465,7 +465,7 @@
return TCL_OK;
}
-static int TracelibCleanCmd(Tcl_Interp * interp UNUSED)
+static int TracelibCleanCmd(Tcl_Interp * interp)
{
#define safe_free(x) do{free(x); x=0;}while(0);
cleanuping=1;
@@ -489,6 +489,7 @@
enable_fence=0;
#undef safe_free
cleanuping=0;
+ Tcl_Eval(interp, "registry::close_file_map");
return TCL_OK;
}
Modified: trunk/base/src/port/port.tcl
===================================================================
--- trunk/base/src/port/port.tcl 2009-05-18 23:53:42 UTC (rev 51132)
+++ trunk/base/src/port/port.tcl 2009-05-19 00:54:45 UTC (rev 51133)
@@ -1804,6 +1804,7 @@
puts "$file does not exist."
}
}
+ registry::close_file_map
return 0
}
@@ -2316,6 +2317,7 @@
}
}
}
+ registry::close_file_map
return $status
}
Modified: trunk/base/src/registry1.0/portimage.tcl
===================================================================
--- trunk/base/src/registry1.0/portimage.tcl 2009-05-18 23:53:42 UTC (rev 51132)
+++ trunk/base/src/registry1.0/portimage.tcl 2009-05-19 00:54:45 UTC (rev 51133)
@@ -130,11 +130,7 @@
registry::write_entry $ref
- registry::open_file_map
- foreach file $imagefiles {
- registry::register_file $file $name
- }
- registry::write_file_map
+ registry::register_bulk_files $imagefiles $name
}
proc deactivate {name v optionslist} {
@@ -185,15 +181,16 @@
set imagedir [registry::property_retrieve $ref imagedir]
+ registry::open_file_map
set imagefiles [registry::port_registered $name]
_deactivate_contents $name $imagefiles
- registry::open_file_map
foreach file $imagefiles {
registry::unregister_file $file
}
registry::write_file_map
+ registry::close_file_map
registry::property_store $ref active 0
@@ -380,6 +377,7 @@
lappend files $file
}
registry::write_file_map
+ registry::close_file_map
# Sort the list in forward order, removing duplicates.
# Since the list is sorted in forward order, we're sure that directories
Modified: trunk/base/src/registry1.0/receipt_flat.tcl
===================================================================
--- trunk/base/src/registry1.0/receipt_flat.tcl 2009-05-18 23:53:42 UTC (rev 51132)
+++ trunk/base/src/registry1.0/receipt_flat.tcl 2009-05-19 00:54:45 UTC (rev 51133)
@@ -296,6 +296,7 @@
# Save the file_map afterwards
write_file_map
+ close_file_map
# Save the entry to new format.
write_entry $ref $name $version $revision $variants
@@ -723,6 +724,19 @@
return 1
}
+##
+# close the file map.
+# important to do this so the lock is released.
+# do not do anything if the file map wasn't open.
+#
+proc close_file_map {args} {
+ variable file_map
+
+ if { [info exists file_map] } {
+ filemap close file_map
+ }
+}
+
# Dependency Map Code
proc open_dep_map {args} {
global macports::registry.path
Modified: trunk/base/src/registry1.0/registry.tcl
===================================================================
--- trunk/base/src/registry1.0/registry.tcl 2009-05-18 23:53:42 UTC (rev 51132)
+++ trunk/base/src/registry1.0/registry.tcl 2009-05-19 00:54:45 UTC (rev 51133)
@@ -261,6 +261,7 @@
open_file_map
set r [${macports::registry.format}::register_bulk_files $files $port]
write_file_map
+ close_file_map
return $r
}
@@ -274,6 +275,11 @@
return [${macports::registry.format}::write_file_map $args]
}
+proc close_file_map {args} {
+ global macports::registry.format
+ return [${macports::registry.format}::close_file_map $args]
+}
+
# Dependency Map Code
proc register_dependencies {deps name} {
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20090518/582e1996/attachment-0001.html>
More information about the macports-changes
mailing list